Aesthetic and Function (or, Why I Can’t Play a Green Guitar)

By: Nick Burman
Graphic Designer, Marketing

6th June 2019

4 minute read

Home » Insights » Careers & People

At the 1st Annual AIGA Louisville Design Week in Louisville, KY in 2015, New York designer Stefan Sagmeister gave a talk on Why Beauty Matters, drawing on real-life examples to illustrate how aesthetic affects function.

The first example he gave was an 80-foot tunnel in the Brooklyn-Queens Expressway underpass that had become a run-down eyesore. After painting two large murals on the walls, the tunnels became tourist attractions and even a wedding location.

Beauty came first, function followed.

 

The “Yes” Underpass, commissioned by Sagmeister’s company, Sagmeister & Walsh Image Source: www.creativebloq.com

 

Secondly, he talked about The Highline, an abandoned rail line that, once converted into an elevated park, with plants and trees, became a favourite destination for events, live art and performances. Critics were concerned that it would crumble into a crime haven – in six years not a single crime had occurred in the area.

Beauty made it a useful place.

Lastly was the comparison of two functionally-similar New York stations, Penn Station and Grand Central. Both are widely considered as anger-inducing transportation hubs, with nothing to offer except a means to an end. Testers used Twitter and an algorithm designed to map emotions through tweets to show that people are happier when visiting the beautifully designed Grand Central, instead of the dingy Penn Station.

Given the choice, beauty won.

 

Grand Central Station, New York, USA. Image Source: www.unsplash.com

 

This A-B test is really compelling as it shows the choice that people actually made. It wasn’t a case of heightened awareness, publicity or curiosity, but a conscious decision to choose a station that was more aesthetically pleasing, even though the outcome from visiting each of the stations is unlikely to be any different.

Sagmeister didn’t suggest we build things that work and then make them attractive so people will use them. Instead, he suggested that it is the beauty that promotes function. But this idea of aesthetics having an impact on usage extends to more than public spaces.

Art and science

In many cases, the role of a designer can appear to be ‘making pretty’ for the sake of it or imposing one person’s taste when, in essence, it doesn’t matter if corners are round or square, it is painted pink or black or doesn’t even ship in a box. But those aesthetic choices can mean that a product is more likely to be picked up and used, even long after the sales process is over.

Typography can be a matter of taste, but is an art form based on science. When the type is set in order to flow well and be easily read, reading becomes less tiresome and the information much easier to absorb. In this case, the aesthetic concerns are functional. Also, lines of text that are too long can become difficult to read as the eye can take a few moments longer to find the beginning of the next line. Those few moments lead to fatigue and a reader is more subconsciously inclined to give up reading, no matter how interesting the content.

Similarly, properly spaced (kerned) letters make words easier to identify and make the copy easier to read. Cram the letters together and they become difficult to recognise. Spread them out too far, and the text takes up too much space making it awkward to read.

Just don’t make it green

Without scurrying down the troublesome rabbit warren of colour theory, personal responses to colour also impact immediate appeal and attraction, even when we know better. For example, I’ve never been able to play a green guitar. The colour green isn’t one that I associate with music, and if I had a lime guitar, I just wouldn’t pick it up. It would stay on the wall (or, more likely, in the case). This isn’t related to function, or synaesthesia, because a guitar, like most musical instruments, can work the same in any colour. It’s just me. And I’m fine with that.

While there should always be a balance between function and aesthetic, the end result shouldn’t sacrifice either to the detriment of the other.

As William Morris famously said, “have nothing in your house that you do not know to be useful, or believe to be beautiful.” Why can’t the things we design be both?

At the 1st Annual AIGA Louisville Design Week in Louisville, KY in 2015, New York designer Stefan Sagmeister gave a talk on Why Beauty Matters, drawing on real-life examples to illustrate how aesthetic affects function.

The first example he gave was an 80-foot tunnel in the Brooklyn-Queens Expressway underpass that had become a run-down eyesore. After painting two large murals on the walls, the tunnels became tourist attractions and even a wedding location.

Beauty came first, function followed.

 

The “Yes” Underpass, commissioned by Sagmeister’s company, Sagmeister & Walsh Image Source: www.creativebloq.com

 

Secondly, he talked about The Highline, an abandoned rail line that, once converted into an elevated park, with plants and trees, became a favourite destination for events, live art and performances. Critics were concerned that it would crumble into a crime haven – in six years not a single crime had occurred in the area.

Beauty made it a useful place.

Lastly was the comparison of two functionally-similar New York stations, Penn Station and Grand Central. Both are widely considered as anger-inducing transportation hubs, with nothing to offer except a means to an end. Testers used Twitter and an algorithm designed to map emotions through tweets to show that people are happier when visiting the beautifully designed Grand Central, instead of the dingy Penn Station.

Given the choice, beauty won.

 

Grand Central Station, New York, USA. Image Source: www.unsplash.com

 

This A-B test is really compelling as it shows the choice that people actually made. It wasn’t a case of heightened awareness, publicity or curiosity, but a conscious decision to choose a station that was more aesthetically pleasing, even though the outcome from visiting each of the stations is unlikely to be any different.

Sagmeister didn’t suggest we build things that work and then make them attractive so people will use them. Instead, he suggested that it is the beauty that promotes function. But this idea of aesthetics having an impact on usage extends to more than public spaces.

Art and science

In many cases, the role of a designer can appear to be ‘making pretty’ for the sake of it or imposing one person’s taste when, in essence, it doesn’t matter if corners are round or square, it is painted pink or black or doesn’t even ship in a box. But those aesthetic choices can mean that a product is more likely to be picked up and used, even long after the sales process is over.

Typography can be a matter of taste, but is an art form based on science. When the type is set in order to flow well and be easily read, reading becomes less tiresome and the information much easier to absorb. In this case, the aesthetic concerns are functional. Also, lines of text that are too long can become difficult to read as the eye can take a few moments longer to find the beginning of the next line. Those few moments lead to fatigue and a reader is more subconsciously inclined to give up reading, no matter how interesting the content.

Similarly, properly spaced (kerned) letters make words easier to identify and make the copy easier to read. Cram the letters together and they become difficult to recognise. Spread them out too far, and the text takes up too much space making it awkward to read.

Just don’t make it green

Without scurrying down the troublesome rabbit warren of colour theory, personal responses to colour also impact immediate appeal and attraction, even when we know better. For example, I’ve never been able to play a green guitar. The colour green isn’t one that I associate with music, and if I had a lime guitar, I just wouldn’t pick it up. It would stay on the wall (or, more likely, in the case). This isn’t related to function, or synaesthesia, because a guitar, like most musical instruments, can work the same in any colour. It’s just me. And I’m fine with that.

While there should always be a balance between function and aesthetic, the end result shouldn’t sacrifice either to the detriment of the other.

As William Morris famously said, “have nothing in your house that you do not know to be useful, or believe to be beautiful.” Why can’t the things we design be both?

Further Reading

How can an Italian Tomato Make you More Productive?

By: Polly Britton
Project Engineer, Project Design

23rd May 2019

4 minute read

Home » Insights » Careers & People

Where does the time go?

The line between “working” and “not working” is hard to define for many people with a typical office job. You could be sitting at your desk, with a document open on your screen that you’re supposed to be reading, but you’re not. Maybe you’re sipping on a hot beverage and thinking about something else, or you’re replying to a text that just arrived on your phone. Maybe up to 15 minutes slip by without you reading any of it and you didn’t even notice, but in those 15 minutes, you could have read the whole thing if you’d focussed on it. How many hours a week do you spend in this twilight zone, not being productive, but not relaxing either? It might be impossible to know.

Self-restraint takes a conscious effort

Being distracted by something isn’t a decision; it’s your mind’s default reaction to that thing. Retaining your focus is a decision, but it takes will-power to enforce. Psychological studies have suggested that the capacity for self-restraint works like a muscle; it gets tired as you use it over the course of a day. It doesn’t just apply to focus; you use the same discipline muscle whenever you resist bad impulses like eating unhealthily, skipping your work-out, or losing patience with a family member. That means if you have to constantly exercise self-restraint during your workday, you’re more likely to give in to bad impulses when you come home in the evening. It’s a recipe for poor life satisfaction, but it doesn’t have to be that way.

Work when you’re working; Relax when you’re relaxing

Being productive during the day doesn’t have to be such a drain on your mental energy. Just like when exercising a muscle, you can find some relief by taking breaks, as long as the break fully rests that muscle. During my school and university years, I found revising for exams to be extremely stressful, not because of the time spent revising, but because the hours of procrastination I inflicted on myself. Procrastination requires a lot of the strain of working but with no productivity. When you know there is work you should be doing you can’t relax, and it’s exhausting. A truly restful state only comes when you give yourself permission to completely stop working.

Pomodoro

“Pomodoro” is the Italian word for tomato but it’s also the name for a time management technique I heard about recently that fits perfectly with what I already knew about self-restraint and procrastination. The idea is ridiculously simple: you work consistently for 25 minutes, then break for 5 and repeat. While you’re working you don’t look at your phone or get up to make coffee, you just focus on working. Most emails, texts, and calls can wait 25 minutes. Crucially, when you take a 5-minute break, you’ve earned it! You can do whatever you want: have a snack, take a little walk, or check the social media of choice. Don’t even think about your work. The harder you rest, the easier it will be to focus after your break.

The name “Pomodoro” comes from a kind of kitchen timer that’s shaped a bit like a tomato (the kind you twist to set the duration and it ticks its way back down to 0.) I don’t recommend using a real kitchen timer if you share your workspace with other people since they might be bothered by the soft ticking sound punctuated by sudden ringing. If you set the 25-minute timer on your phone instead, keeping the timer app active on your screen will remind you not to look at your phone while the timer is going.

Be more productive and better rested

Maybe your own time-management techniques and self-restraint are working well for you already. Some people just have a naturally high capacity for self-restraint, which is very useful. If that’s not you, maybe you could try Pomodoro and see how it feels. If 25 minutes is too long for you to focus, you can always bring it down to 20 or 15, then try to gradually increase it. The most import thing is that you pick a time and stick to it for that session at least. If you get interrupted someone else, you can end the session prematurely and start a new session later, or you could just say to them “Excuse me, but I’m in the middle of my Pomodoro” and direct them to this blog.

Where does the time go?

The line between “working” and “not working” is hard to define for many people with a typical office job. You could be sitting at your desk, with a document open on your screen that you’re supposed to be reading, but you’re not. Maybe you’re sipping on a hot beverage and thinking about something else, or you’re replying to a text that just arrived on your phone. Maybe up to 15 minutes slip by without you reading any of it and you didn’t even notice, but in those 15 minutes, you could have read the whole thing if you’d focussed on it. How many hours a week do you spend in this twilight zone, not being productive, but not relaxing either? It might be impossible to know.

Self-restraint takes a conscious effort

Being distracted by something isn’t a decision; it’s your mind’s default reaction to that thing. Retaining your focus is a decision, but it takes will-power to enforce. Psychological studies have suggested that the capacity for self-restraint works like a muscle; it gets tired as you use it over the course of a day. It doesn’t just apply to focus; you use the same discipline muscle whenever you resist bad impulses like eating unhealthily, skipping your work-out, or losing patience with a family member. That means if you have to constantly exercise self-restraint during your workday, you’re more likely to give in to bad impulses when you come home in the evening. It’s a recipe for poor life satisfaction, but it doesn’t have to be that way.

Work when you’re working; Relax when you’re relaxing

Being productive during the day doesn’t have to be such a drain on your mental energy. Just like when exercising a muscle, you can find some relief by taking breaks, as long as the break fully rests that muscle. During my school and university years, I found revising for exams to be extremely stressful, not because of the time spent revising, but because the hours of procrastination I inflicted on myself. Procrastination requires a lot of the strain of working but with no productivity. When you know there is work you should be doing you can’t relax, and it’s exhausting. A truly restful state only comes when you give yourself permission to completely stop working.

Pomodoro

“Pomodoro” is the Italian word for tomato but it’s also the name for a time management technique I heard about recently that fits perfectly with what I already knew about self-restraint and procrastination. The idea is ridiculously simple: you work consistently for 25 minutes, then break for 5 and repeat. While you’re working you don’t look at your phone or get up to make coffee, you just focus on working. Most emails, texts, and calls can wait 25 minutes. Crucially, when you take a 5-minute break, you’ve earned it! You can do whatever you want: have a snack, take a little walk, or check the social media of choice. Don’t even think about your work. The harder you rest, the easier it will be to focus after your break.

The name “Pomodoro” comes from a kind of kitchen timer that’s shaped a bit like a tomato (the kind you twist to set the duration and it ticks its way back down to 0.) I don’t recommend using a real kitchen timer if you share your workspace with other people since they might be bothered by the soft ticking sound punctuated by sudden ringing. If you set the 25-minute timer on your phone instead, keeping the timer app active on your screen will remind you not to look at your phone while the timer is going.

Be more productive and better rested

Maybe your own time-management techniques and self-restraint are working well for you already. Some people just have a naturally high capacity for self-restraint, which is very useful. If that’s not you, maybe you could try Pomodoro and see how it feels. If 25 minutes is too long for you to focus, you can always bring it down to 20 or 15, then try to gradually increase it. The most import thing is that you pick a time and stick to it for that session at least. If you get interrupted someone else, you can end the session prematurely and start a new session later, or you could just say to them “Excuse me, but I’m in the middle of my Pomodoro” and direct them to this blog.

Further Reading

Making a LiDAR – Part 5

Unity Point Cloud Rendering

By: David
Principal Consultant, Data Exploration

12th April 2019

4 minute read

Home » Insights » Careers & People

Unity Point Cloud Rendering

Now we’ve got our LIDAR finished, and our first scan completed, we are left with an SD card with some data on it. The data is a list of several million points (called a point cloud) represented in polar spherical coordinates. Each point represents a target distance from the centre of the LIDAR scan. In its own right, this isn’t very exciting, so we need to find a way to visualise the data. Quite a few people have contacted me to ask how I did this, so unlike the previous “philosophical” LIDAR blogs, this one will go into a little more technical detail. So, if you’re not interested in driving 3D rendering engines, then skip the text and go straight to the video!

I’ve chosen to use the Unity game engine, and this is a software tool targeted at creating 3D video games. It handles the maths and graphics of 3D rendering, it provides a user interface for configuring the 3D world, and it uses the C# programming language for the developer to add “game logic”. If you know Unity, this blog should give you enough information to render a point cloud.

An object in the Unity world is called a GameObject, and each game object represents a “thing” that we can see in the 3D world. We also need to create a camera, and this gives the user the view of the 3D world. It’s straight forward enough to write some C# code that moves and rotates the camera in accordance with mouse and keyboard input. If we fill the world with GameObjects, and we move the camera through the world, then Unity takes care of the rest.

A GameObject is made of a 3D mesh of points to define its shape. The mesh can be anything from a complicated shape like a person, to a simple geometrical shape like a sphere. The developer needs to define a Material which is rendered on the GameObject surface, and a Shader to determine how the Material surface responds to light.

The obvious way to render the LIDAR data is to create a sphere GameObject for each LIDAR data point. This produces wonderful 3D images, and as the user moves through the point cloud each element is rendered as a beautifully shaded sphere. Unfortunately, because each sphere translates into many points of a 3D Mesh, and because we have several million LIDAR data points, that’s a huge amount of work for the computer to get through. The end result is a very slow frame rate which isn’t suitable for real time. For video generation, I configured Unity to generate frames offline, but 1/24th of a second apart in game time. The result is a series of images that can be stitched together to make a fluid video sequence.

I thought it would be fun to view the LIDAR world through the Oculus Rift headset, but here we require very high frame rates so offline rendering isn’t going to work. Rather than plotting each LIDAR point as a GameObject, I used a series of LIDAR points (about 60k worth) to define a single Mesh to make one GameObject. The GameObject then takes the shape defined by the 60K set of scanned LIDAR points. The GameObject Mesh requires a custom Shader to render its surface as transparent, and each Mesh vertices as a flat 2D disk. This allows us to reduce the number of GameObjects by a factor of 60K with a massive drop in CPU workload. The total number of GameObjects is then the number of LIDAR data points divided by 60K. The downside is that we lose the shading on each LIDAR data point. From a distance that still looks great, but if the user moves close to a LIDAR point the image is not quite so good. The advantage is a frame rate fast enough for virtual reality.

As a final node, it is quite a surreal experience to scan an area, and then view it in virtual reality through the Oculus Rift headset. It is quite the shame that the reader can only see the 2D video renders. The best way I can describe it is analogues to stepping into the Matrix to visit Morpheus and Neo!

Now we’ve got our LIDAR finished, and our first scan completed, we are left with an SD card with some data on it. The data is a list of several million points (called a point cloud) represented in polar spherical coordinates. Each point represents a target distance from the centre of the LIDAR scan. In its own right, this isn’t very exciting, so we need to find a way to visualise the data. Quite a few people have contacted me to ask how I did this, so unlike the previous “philosophical” LIDAR blogs, this one will go into a little more technical detail. So, if you’re not interested in driving 3D rendering engines, then skip the text and go straight to the video!

I’ve chosen to use the Unity game engine, and this is a software tool targeted at creating 3D video games. It handles the maths and graphics of 3D rendering, it provides a user interface for configuring the 3D world, and it uses the C# programming language for the developer to add “game logic”. If you know Unity, this blog should give you enough information to render a point cloud.

An object in the Unity world is called a GameObject, and each game object represents a “thing” that we can see in the 3D world. We also need to create a camera, and this gives the user the view of the 3D world. It’s straight forward enough to write some C# code that moves and rotates the camera in accordance with mouse and keyboard input. If we fill the world with GameObjects, and we move the camera through the world, then Unity takes care of the rest.

A GameObject is made of a 3D mesh of points to define its shape. The mesh can be anything from a complicated shape like a person, to a simple geometrical shape like a sphere. The developer needs to define a Material which is rendered on the GameObject surface, and a Shader to determine how the Material surface responds to light.

The obvious way to render the LIDAR data is to create a sphere GameObject for each LIDAR data point. This produces wonderful 3D images, and as the user moves through the point cloud each element is rendered as a beautifully shaded sphere. Unfortunately, because each sphere translates into many points of a 3D Mesh, and because we have several million LIDAR data points, that’s a huge amount of work for the computer to get through. The end result is a very slow frame rate which isn’t suitable for real time. For video generation, I configured Unity to generate frames offline, but 1/24th of a second apart in game time. The result is a series of images that can be stitched together to make a fluid video sequence.

I thought it would be fun to view the LIDAR world through the Oculus Rift headset, but here we require very high frame rates so offline rendering isn’t going to work. Rather than plotting each LIDAR point as a GameObject, I used a series of LIDAR points (about 60k worth) to define a single Mesh to make one GameObject. The GameObject then takes the shape defined by the 60K set of scanned LIDAR points. The GameObject Mesh requires a custom Shader to render its surface as transparent, and each Mesh vertices as a flat 2D disk. This allows us to reduce the number of GameObjects by a factor of 60K with a massive drop in CPU workload. The total number of GameObjects is then the number of LIDAR data points divided by 60K. The downside is that we lose the shading on each LIDAR data point. From a distance that still looks great, but if the user moves close to a LIDAR point the image is not quite so good. The advantage is a frame rate fast enough for virtual reality.

As a final node, it is quite a surreal experience to scan an area, and then view it in virtual reality through the Oculus Rift headset. It is quite the shame that the reader can only see the 2D video renders. The best way I can describe it is analogues to stepping into the Matrix to visit Morpheus and Neo!

Further Reading

Making a LiDAR – Part 4

Electronics Prototyping, and getting a graduate job at Plextek

By: David
Principal Consultant, Data Exploration

11th April 2019

3 minute read

Home » Insights » Careers & People

Electronics Prototyping, and getting a graduate job at Plextek

Since I first picked up a soldering iron I’d say there have been two significant changes in electronics; the parts have got smaller, and my eyesight has got worse. With the advent of surface mount, I did fear we were entering an educational dark age. It became beyond the scope of the hobbyist to create PCBs and solder the parts. Luckily, I think all that’s changed, and there has never been a better time for both commercial prototyping and hobbyist experimentation.

As I described in the previous blog, I’m very much a fan of the STM32 platform, and ST Microelectronics have produced some terrific prototyping boards. In fact, the same is true for every major player in the microcontroller market. All these boards have in common low cost and bring out fine pitch surface mount packages to user-friendly headers.

For around £10 I can visit RS components, and buy a very capable STM32 prototyping board with all of the microcontroller’s features our LIDAR will need. With the addition of a few breakout boards, we can test and prototype all the electronics for our LIDAR without ever having to touch a soldering iron or make a PCB.

We do still have one problem, and that’s because our initial prototype can end up a bit of a mess. All those prototype and breakout boards can leave a “rats nest” of wires, it’s fragile, and it’s probably too big. Luckily, rapid and low-cost PCB production has also come a long way. We’ll take advantage of this for our LIDAR electronics.

A quick visit to one of the far Eastern PCB prototyping houses shows I can get 10 copies of a small custom two-layer PCB for $5 plus shipping. Pushing to 4 layers and it’s only $49 plus shipping. I really have no idea how they make it commercially viable! If you’re concerned about quality and security, a European PCB house isn’t that much more expensive. Of course, you still have to design and solder the PCB, but with a copy of Eagle, a visit to YouTube, a low-cost USB microscope, and a rework gun, you’d be surprised how easy it is. Surface tension is your friend!

So what’s my message from this Blog? Well, over the years I’ve become more and more involved with graduate recruitment, and it’s often a long and frustrating process. I’ve become very impressed by the extent of knowledge and understanding our young potential recruits have, but they generally are not so confident about demonstrating these abilities. So, if you’re keen on a career in embedded electronics, then my challenge to you is to get yourself noticed. Buy yourself some prototyping boards, build some embedded projects, and look on the internet to find out how to do it. Bring them with you to your interview, and show us what you’ve done. I promise if you do that, you will stand head and shoulders above the crowd.

Since I first picked up a soldering iron I’d say there have been two significant changes in electronics; the parts have got smaller, and my eyesight has got worse. With the advent of surface mount, I did fear we were entering an educational dark age. It became beyond the scope of the hobbyist to create PCBs and solder the parts. Luckily, I think all that’s changed, and there has never been a better time for both commercial prototyping and hobbyist experimentation.

As I described in the previous blog, I’m very much a fan of the STM32 platform, and ST Microelectronics have produced some terrific prototyping boards. In fact, the same is true for every major player in the microcontroller market. All these boards have in common low cost and bring out fine pitch surface mount packages to user-friendly headers.

For around £10 I can visit RS components, and buy a very capable STM32 prototyping board with all of the microcontroller’s features our LIDAR will need. With the addition of a few breakout boards, we can test and prototype all the electronics for our LIDAR without ever having to touch a soldering iron or make a PCB.

We do still have one problem, and that’s because our initial prototype can end up a bit of a mess. All those prototype and breakout boards can leave a “rats nest” of wires, it’s fragile, and it’s probably too big. Luckily, rapid and low-cost PCB production has also come a long way. We’ll take advantage of this for our LIDAR electronics.

A quick visit to one of the far Eastern PCB prototyping houses shows I can get 10 copies of a small custom two-layer PCB for $5 plus shipping. Pushing to 4 layers and it’s only $49 plus shipping. I really have no idea how they make it commercially viable! If you’re concerned about quality and security, a European PCB house isn’t that much more expensive. Of course, you still have to design and solder the PCB, but with a copy of Eagle, a visit to YouTube, a low-cost USB microscope, and a rework gun, you’d be surprised how easy it is. Surface tension is your friend!

So what’s my message from this Blog? Well, over the years I’ve become more and more involved with graduate recruitment, and it’s often a long and frustrating process. I’ve become very impressed by the extent of knowledge and understanding our young potential recruits have, but they generally are not so confident about demonstrating these abilities. So, if you’re keen on a career in embedded electronics, then my challenge to you is to get yourself noticed. Buy yourself some prototyping boards, build some embedded projects, and look on the internet to find out how to do it. Bring them with you to your interview, and show us what you’ve done. I promise if you do that, you will stand head and shoulders above the crowd.

Further Reading

Making a LiDAR – Part 3

Embedded Software and Platform Choice

By: David
Principal Consultant, Data Exploration

10th April 2019

3 minute read

Home » Insights » Careers & People

Embedded Software and Platform Choice

Do you remember as a child counting how long it took for thunder to arrive after the lightning flash, and then working out how far away the storm was? Well, a LIDAR uses the same principle but with light rather than sound. I think that’s amazing. Imagine switching a torch on, pointing it at the wall in front of you, and using a stopwatch to time how long it takes for the light to get reflected back to you. That seems ludicrous, but that’s exactly what our laser range finder is doing. (Did you know that one light Nanosecond is approximately one foot in length? So, I’m about 5.66 light Nanoseconds tall.)

Now, at the back of our laser range finder we have some wires that carry the measured distance data (I2C for the technically minded), so the first job of our software is to read the data, and just like a digital camera we need to write it back to an SD card. We also need to worry about controlling the scanning stepper motors. If you’ve no experience of stepper motor control, it’s quite straight forward; each time you generate a pulse the motor moves a tiny fraction. If you generate a continuous pulse train the motors spins. If you count the number of pulses you know how far the motor has moved. It’s all very straight forward, and just the sort of task a microcontroller was made far.

However, before we get started we need to pick a microcontroller, and this is where it can get contentious. Whatever you choose; somebody else will tell you that you should have done it their way instead. In my opinion, that’s frustrating, and they are usually wrong. I’ll defend that by saying only one thing matters. You need to pick a technical solution that’s within your capability to deliver to, and ideally exceed, the expectations of the people paying you. The great thing about engineering is that there will be many equally good ways of doing that, so you’re only wrong if your way isn’t one of them!

Personally, I’m not too keen on Arduino. It’s great for hobbyists and proof of concepts, but I do find its “simple educational” environment constraining. Likewise, the thought of days wading through thousands of pages of data sheets is equally unattractive. I want to write the embedded code to make the LIDAR work; I’m not interested in writing the code to make the microcontroller work. That’s why my own choice is the STM32 microcontroller family and the STM32CubeMx tool. It lets me “auto-generate” the framework to configure the microcontroller, I don’t have to read every minutia of detail in the datasheet, and it gives me a professional IDE development chain with full visibility of exactly what the hardware is doing if I should need it..

To sum up, with an STM32 I can get the job done, and I can meet all expectations. But importantly, if a BeagleBone running a Python interpreter lets you get the job done, and leads your customers to success, then don’t let anyone tell you that you’re wrong. Of course, don’t be closed to new ideas either. Learning and exploration are what makes life interesting!

Do you remember as a child counting how long it took for thunder to arrive after the lightning flash, and then working out how far away the storm was? Well, a LIDAR uses the same principle but with light rather than sound. I think that’s amazing. Imagine switching a torch on, pointing it at the wall in front of you, and using a stopwatch to time how long it takes for the light to get reflected back to you. That seems ludicrous, but that’s exactly what our laser range finder is doing. (Did you know that one light Nanosecond is approximately one foot in length? So, I’m about 5.66 light Nanoseconds tall.)

Now, at the back of our laser range finder we have some wires that carry the measured distance data (I2C for the technically minded), so the first job of our software is to read the data, and just like a digital camera we need to write it back to an SD card. We also need to worry about controlling the scanning stepper motors. If you’ve no experience of stepper motor control, it’s quite straight forward; each time you generate a pulse the motor moves a tiny fraction. If you generate a continuous pulse train the motors spins. If you count the number of pulses you know how far the motor has moved. It’s all very straight forward, and just the sort of task a microcontroller was made far.

However, before we get started we need to pick a microcontroller, and this is where it can get contentious. Whatever you choose; somebody else will tell you that you should have done it their way instead. In my opinion, that’s frustrating, and they are usually wrong. I’ll defend that by saying only one thing matters. You need to pick a technical solution that’s within your capability to deliver to, and ideally exceed, the expectations of the people paying you. The great thing about engineering is that there will be many equally good ways of doing that, so you’re only wrong if your way isn’t one of them!

Personally, I’m not too keen on Arduino. It’s great for hobbyists and proof of concepts, but I do find its “simple educational” environment constraining. Likewise, the thought of days wading through thousands of pages of data sheets is equally unattractive. I want to write the embedded code to make the LIDAR work; I’m not interested in writing the code to make the microcontroller work. That’s why my own choice is the STM32 microcontroller family and the STM32CubeMx tool. It lets me “auto-generate” the framework to configure the microcontroller, I don’t have to read every minutia of detail in the datasheet, and it gives me a professional IDE development chain with full visibility of exactly what the hardware is doing if I should need it..
To sum up, with an STM32 I can get the job done, and I can meet all expectations. But importantly, if a BeagleBone running a Python interpreter lets you get the job done, and leads your customers to success, then don’t let anyone tell you that you’re wrong. Of course, don’t be closed to new ideas either. Learning and exploration are what makes life interesting!

Further Reading