Ketan's Home

July 26, 2018

Grbl Ported to the ESP32

Filed under: Uncategorized — ketan @ 11:18 PM

If you’re building a CNC or laser, there’s an excellent chance you’ll be using Grbl to get moving. It’s also a pretty safe bet you’d end up running it on some variation of the Arduino sitting in a motor controller breakout board. It’s cheap, easy to setup and use, and effectively the “industry” standard for DIY machines so there’s no shortage of information out there. What’s not to love?

Well, quite a few things in fact. As [bdring] explains, Grbl pushes the capability of the Arduino to the very limit; making it something of a dead-end for future development. Plus the Arduino needs to be plugged into the host computer via USB to function, a rather quaint idea to many in 2018. These were just some of the reasons he decided to port Grbl to the ESP32 board.

Price wise the Arduino and ESP32 are around the same, but the ESP does have the advantage of being much more powerful than the 8-bit Italian Stallion. Its got way more flash and RAM as well, and perhaps most importantly, includes Wi-Fi and Bluetooth out of the box. It still needs to be plugged into a board to hold the motor drivers like the Arduino, but beyond that [bdring] opines the ESP32 is about as close to the perfect Grbl platform as you can get.

[bdring] reports that porting the code over to the ESP32 wasn’t terrible, but it wasn’t exactly a walk in the park either. The bulk of the code went by without too much trouble, but when it came to the parts that needed precise timing things got tricky. The ESP32 makes use of a Real Time Operating System (RTOS) that’s not too happy about giving up control of the hardware. Turning off the RTOS was an option, but that would nuke Bluetooth and Wi-Fi so obviously not an ideal solution. Eventually he figured out how to get interrupts more or less playing nicely with the RTOS, but mentions there’s still some more work to be done before he’s ready to release the firmware to the public.

If you’ve been browsing Hackaday for a while you may remember [bdring]. He’s got a real knack for making things move, and has created a number of fantastic little CNC machines recently which have definitely caught our eye.

[Thanks to Jon and Craig for the tip.]

from Hack a Day

July 23, 2018

LED Programming Workshop Documentation and Resources #NeoPixels

Filed under: Uncategorized — ketan @ 6:18 AM

LED Programming Workshop Documentation and Resources #NeoPixels


Wowee – huge thanks to Dr. Phillipa Gill for alerting us to this resource on GitHub!! Dr. Gill writes:

As part of the workshop I bring in some LED projects that I work on in my spare time to get the students excited about using programming to be

Here is a picture of a column of ~4,800 LEDs that I brought in when we offered the workshop for Girls Inc. a group that gets high school girls engaged with a variety of STEM fields at U. Mass.

From GitHub:

Documentation and resources for running a middle/high school level workshop on programming LEDs.

Materials developed by Phillipa Gill & Ivan Lee. Based on materials by Ben Marlin.

Please contact us if you have questions or want to contribute edits to the materials.

The workshop is designed to use an Arduino Uno with a short length of AdaFruit Neopixel LEDs.

  • Documentation contains instructions for the lab exercises
  • Labs contains solutions to the different labs
  • Presentations includes introduction presentations as well as a training slide deck for volunteers.
  • Software contains the relevant software add-ons. Specifically, we have modified the ArduBlock visual programming tool to include basic functions for manipulating LEDs. You can use this version by copying the ArduBlock Jar File (e.g., ardublock-beta-GirlsInc-v2.jar) into the Arduino/tools/ArduBlockTool/tool directory. Once you have done this, you can see the ‘ArduBlock’ block tool in the tool menu in your Arduino program.

Read more on GitHub!

Join 7,000+ makers on Adafruit’s Discord channels and be part of the community!

CircuitPython in 2018 – Python on Microcontrollers is here!

Have an amazing project to share? Join the SHOW-AND-TELL every Wednesday night at 7:30pm ET on Google+ Hangouts.

Join us every Wednesday night at 8pm ET for Ask an Engineer!

Follow Adafruit on Instagram for top secret new products, behinds the scenes and more

Maker Business — American startups are having an increasingly smaller share of the market

Wearables — Switch the advantage

Electronics — Don’t float!

Biohacking — Optimizing the Warm Up

Python for Microcontrollers — CircuitPython 3.0.0 released!

Get the only spam-free daily newsletter about wearables, running a “maker business”, electronic tips and more! Subscribe at


No comments yet.

Leave a comment

Adafruit has a “be excellent to each other” comment policy. Help us keep the community here positive and helpful. Stick to the topic, be respectful of makers of all ages and skill levels. Be kind, and don’t spam – Thank you!

from Adafruit Blog

July 20, 2018

Shoehorning A Slick Spotify Remote Into An ESP8266

Filed under: Uncategorized — ketan @ 12:02 PM

In 2017 Spotify finally deprecated their public vanilla C SDK library,  libspotify, and officially replaced it with dedicated SDKs for iOS and Android and this new-fangled web thing we’ve all heard so much about. This is probably great for their maintainability but makes writing a native application for a Linux or a hardware device significantly harder, at least without an application process and NDA. Or is it? Instead of using that boring slab of glass and metal in their pocket [Dani] wanted to build a handy “now playing” display and remote control interface but was constrained by the aforementioned SDK limitations. So they came up with a series of clever optimizations resulting in the clearly-named ESP8266 Spotify Remote Control.

The Spotify Remote Control has a color LCD with a touchscreen. Once attached to a Spotify account it will show the album art of the currently playing track (with a loading indicator!) and let you play/pause/skip tracks from its touch screen, all with impressively low latency. To get here [Dani] faced two major challenges: authorizing the ESP to interact with a user’s Spotify account, and low latency LCD drawing.

2 Bit Cover Art

If you’re not on iOS or Android, the Spotify web API is the remaining non-NDA’d interface available. But it’s really designed to be used on relatively rich platforms such as fully featured web browsers, not an embedded device. To that end, gone are the days of asking a user to enter their username and password in a static login box, the newer (better) way is to negotiate for a per-user token (which is individually authorized per application), then to use that to authenticate your interaction. With this regime 3rd party applications (in this case an ESP8266) never see a user’s password. One codified and very common version of this process is called OAuth and the token dance is called a “workflow”. [Dani] has a pretty good writeup of the process in their post if you want more detail about the theory. After banging out the web requests and exception handling (user declines to authorize the device, etc) the final magic ended up being using mDNS to get the user’s browser to redirect itself to the ESP’s local web server without looking up an IP first. So the setup process is this: the ESP boots and displays a URL to go to, the user navigates there on a WiFi connected device and operates the authorization workflow, then tokens are exchanged and the Remote Control is authorized.

The second problem was smooth drawing. By the ESP’s standards the album art for a given track at full color depth is pretty storage-large, meaning slow transfers to the display and large memory requirements. [Dani] used a few tricks here. The first was to try 2 bit color depth which turned out atrociously (see image above). Eventually the solution became to decompress and draw the album art directly to the screen (instead of a frame buffer) only when the track changed, then redraw the transport controls quickly with 2 bit color. The final problem was that network transfers were also slow, requiring manual timesharing between the download code and the display drawing routing to ensure everything was redrawn frequently.

Check out [Dani]’s video after the break, and take a peek at the sources to try building a Spotify Remote Control yourself.

from Hack a Day

Supersize DIY R/C Servos From Windscreen Wipers

Filed under: Uncategorized — ketan @ 12:43 AM

Supersize DIY R/C Servos From Windscreen Wipers

We’re all familiar with the experience of buying hobby servos. The market is awash with cheap clones which have inflated specs and poor performance. Even branded servos often fail to deliver, and sometimes you just can’t get the required torque or speed from the small form factor of the typical hobby servo.

Enter [James Bruton] and his DIY RC servo from a windscreen wiper motor. Windscreen wiper motors are cheap as chips, and a classic salvage. The motor shaft is connected to a potentiometer via a pulley and some string, providing the necessary closed-loop feedback. Instead of using the traditional analog circuitry found inside a servo, an Arduino provides the brains. This means PID control can be implemented on the ‘duino, and tuned to get the best response from different load characteristics. There’s also the choice of different interfacing options: though [James]’ Arduino code accepts PWM signals for a drop-in R/C servo replacement, the addition of a microcontroller means many other input signal types and protocols are available. In fact, we recently wrote about serial bus servos and their numerous advantages.

We particularly love this because of the price barrier of industrial servomotors; sure, this kind of solution doesn’t have the precision or torque that off-the-shelf products provide, but would be sufficient for many hacks. Incidentally, this is what inspired one of our favourite open source projects: ODrive, which focuses on harnessing the power of cheap brushless motors for industrial use.

from Hack a Day

Casting a 3D Printed Extruder Body in Aluminum

Filed under: Uncategorized — ketan @ 12:37 AM

Casting a 3D Printed Extruder Body in Aluminum

Creating 3D prints is great, but sometimes you need something more durable. [Myfordboy] printed a new 3D printer extruder in PLA and then used the lost PLA method to cast it in aluminum. You can see the results in the video below.

The same process has been used for many years with wax instead of PLA. The idea is to produce a model of what you want to make and surround it with a material called investment. Once the investment sets, heat melts the PLA (or wax) leaving a mold made of the investment material. Once you have the mold, you can place it in a frame and surround it with greensand. Another frame gets a half pipe placed and packed with greensand. The depression made by this pipe will provide a path for the metal to flow into the original mold. Another pipe will cut a feeder into the greensand over this pipe.

Sounds simple enough, but there are a few good tips in the video. For example, the way he used a food storage container to hold the investment and a sander to vibrate air bubbles out of it. Watching him place the feeder and well was very instructive, too.

If you don’t have a forge, but you have a microwave, you might want to read how to use the microwave. We’ve also seen other detailed lost PLA processes, you might want to check out.

from Hack a Day

Robot Maps Rooms with Help From iPhone

Filed under: Uncategorized — ketan @ 12:34 AM

The Unity engine has been around since Apple started using Intel chips, and has made quite a splash in the gaming world. Unity allows developers to create 2D and 3D games, but there are some other interesting applications of this gaming engine as well. For example, [matthewhallberg] used it to build a robot that can map rooms in 3D.

The impetus for this project was a robotics company that used a series of robots around their business. The robots navigate using computer vision, but couldn’t map the rooms from scratch. They hired [matthewhallberg] to tackle this problem, and this robot is a preliminary result. Using the Unity engine and an iPhone, the robot can perform in one of three modes. The first is a user-controlled mode, the second is object following, and the third is 3D mapping.

The robot seems fairly easy to construct and only carries and iPhone, a Node MCU, some motors, and a battery. Most of the computational work is done remotely, with the robot simply receiving its movement commands from another computer. There’s a lot going on here, software-wise, and a lot of toolkits and software packages to install and communicate with one another, but the video below does a good job of showing what you’ll need and how it all works together. If that’s all too much, there are other robots with a form of computer vision that can get you started into the world of computer vision and mapping.

from Hack a Day

Dual Source Laser Cutter Built Like a Tank, Cuts Most Anything

Filed under: Uncategorized — ketan @ 12:23 AM

Dual Source Laser Cutter Built Like a Tank, Cuts Most Anything

Laser cutters aren’t the sort of thing that you might think about making at home, but there’s no reason not to if you are careful and do your research. That’s what [Daniele Ingrassia] did with the Laser Duo, an open source laser cutter that has two light sources for cutting various materials. His final product is not a small device: it has a press-formed aluminum case that looks more like a World War I tank than a piece of precision machinery. But that’s for a good reason: you don’t mess about with lasers, especially the 130 Watt CO2 and 75 Watt Yag lasers that the Laser Duo uses.

[Daniele] is going to open-source the entire project, starting with the custom motor controller that he uses, the Satshakit-grbl.  He’s looking to release final plans for the cutter in August after he has duplicated the build at Hamburg University. The two lasers mean that it can cut a wider range of material than most: the CO2 laser can cut or engrave wood, fabric or MDF while the 75W Yag laser can burn its way through harder materials such as brass, stainless steel, copper or marble. This opens up new uses for a laser cutter: it can create PCBs, engrave metal or even make a nice tombstone. The 150 x 100 x 50 cm (about 60 by 40 by 20 inches) working area means that you could also just about do the whole tombstone in one piece.

[Daniele] says that the parts are mostly 3D printed, CNC machined or press formed. The latter might put it beyond the capabilities of the typical home hacker, but most decent sized hackerspaces will have the required capabilities, or know someone who has. We’ve seen lots of build your own laser cutter projects before and hacks to improve the cheap models from Ali Express, but the solid design and capabilities of this one make it a project to watch. In the meantime, you can check out the DuoLaser at the Fab14 conference in Toulouse in late July.

from Hack a Day

July 19, 2018

Expanding the K40 Laser Cutter with Aluminum Extrusion

Filed under: Uncategorized — ketan @ 10:08 PM

Expanding the K40 Laser Cutter with Aluminum Extrusion

The K40 laser cutter is an excellent option if you need to laze some plywood or acrylic. It’s ubiquitous, it’s cheap, and there’s a vast community out there that will help you support any issue you could have. Unfortunately, the K40 laser cutter is lacking. It has a small bed, and it doesn’t have the latest technology like ‘switches’ that turn off the laser when you open the door.

[frederik] recently upgraded his K40 to something great. He’s calling it the Layzor, and it has a huge 600×400 mm bed area, a feed-through slot for even wider workpieces, and fancy technology [frederik] is calling an ‘E-stop’. Sounds expensive, doesn’t it?

The build began by scavenging the K40 laser cutter for the electronics and laser tube, then building a new frame out of aluminum extrusion. A few parts had to be custom made, including a few stepper motor mounts and something to hold the laser tube. All of this was tied up in a box with acrylic panels, and went together as easily as any other CNC machine.

The finished project is great. It’s a relatively powerful laser cutter capable of most hobby work, and it was cheap. The total cost for this build was under €500. That’s not including the scavenged K40, but that’s still an amazing price for a very capable laser cutter.

from Hack a Day

July 4, 2018

Raspberry Pi Tracks Starter Fermentation For Optimized Sourdough

Filed under: Uncategorized — ketan @ 12:37 AM

Those of you who’ve never had a real sourdough have never had real bread. Good food fights back a little when you eat it, and a proper sourdough, with its crispy crust and tangy center, certainly fits the bill. Sourdough aficionados, your humble writer included, all have recipes that we pretend are ancient family secrets while in reality we’re all just guessing. Sourdough is partly science, partly art, but mostly delicious black magic.

In an effort to demystify his sourdough process, [Justin Lam] has gone digital with this image processing sourdough starter monitor. Sourdough breads are leavened not by the addition of brewers yeast (Saccharomyces cerevisiae), but by the inclusion of a starter,  a vibrant ecosystem of wild yeasts that is carefully nurtured, sometimes for years. Like any other living thing, it needs to be fed, a task that should happen at the point of maximum fermentation. Rather than guess when this might be, [Justin] used a Raspberry Pi Zero and PiCam to capture a time-lapse video of the starter as the beasties within give off their CO₂, thus expanding it up inside its container. A little Python does the work of thresholding and finding the top of the starter as it rises, allowing [Justin] to plot height of the starter over time. He found that peak height, and therefore peak fermentation, occurs about six hours after feeding. He has used his data to better inform his feeding schedule and to learn how best to revive neglected starters.

Surprisingly, this isn’t the first time we’ve discussed sourdough here. It seems that someone uses Git for iterative sourdough recipe development, and we once featured a foundry made from a pyrolyzed loaf of sourdough.

from Hack a Day

July 2, 2018

Are Technical Skills Enough? Create a Personal Brand to Help You Succeed

Filed under: Uncategorized — ketan @ 8:19 AM

You know what would be awesome for your career? A well-crafted, compelling brand story about your skills, knowledge, and qualifications as a programmer.

Programming knowledge and expertise will give you a good head start, but to propel your progress graph steeply and quickly, you’ll need to unlock opportunities that exist outside of a pre-charted path.

So if your desire is to transform your programming career into an exemplary story of success, a personal brand will help you get there.

The good news is that you can create your personal brand story. The next best news is that this article is filled with actionable tips that will empower you to build and share that story.

But Wait … What Is Personal Branding?

Personal branding means creating an authentic character for yourself that makes you distinct from others in the same industry or group.

Building your personal brand as a developer is more complex now than ever before because of social media, blogs, websites, thought leadership, and more. What was earlier limited to an immediate network of people in one’s work or personal life has now exploded into the world at large.

As a skilled developer, you are no longer confined to working in a physical office, so why confine your personal brand?

How Will Building My Personal Brand Empower My Career?

Your personal brand will make you memorable in the minds of your clients, employers, and peers. It will give them an opportunity to see various aspects of your personality, such as your professional knowledge and your personal opinion. It will give your candidature an upgrade from a mere “job-seeker” to a dynamic professional.

Building a personal brand:

  • Establishes you as a thought leader in a niche space. Become an authority in a specific area of expertise by adding value to the existing knowledge and information available in that space.
  • Improves your visibility in the industry. As an influencer, you can get quoted in the news media and on industry blogs. In the future, if you launch an entrepreneurial venture, this will further help you in marketing your startup.
  • Grows your professional network. Create more career opportunities, increase incoming referrals, get access to advice and mentorship from industry experts, and boost your positive influence by building new connections consistently.
  • Boosts your credibility. Build more trust in your abilities and skills as you attract more clients and projects.
  • Ultimately, a personal brand increases your revenue. As you fuel your career with a compelling brand story about yourself, it directly increases your earnings as a programmer.

If you wish to boost your career with a personal brand, here’s how to get started:

Get a Username and a Domain Name

As a developer, the most important thing you need to take care of is to find a username that resonates with your personality.

Well, in all probability you already have a username that you use everywhere. Can that name be developed into your professional personality? If not, then let’s find a username that has the potential.

This username can become your identity on important developer platforms such as Stack Overflow and GitHub. Over time, this will build a higher brand recall for you. You can extend the same username to register a domain name for your website or blog.

A domain name is a name you choose for your website. A website is a set of related web pages and resources uploaded on a web hosting server under a single domain name. The hosting servers are identified on the internet by their IP addresses, which are difficult for humans to remember. Therefore, the key function of a domain name is to give your website a notable identity without requiring to remember numeric IP addresses.

Here are a few tips on how to select a domain name:

  • Keep it short, descriptive, and meaningful.
  • Make it free of abbreviations, numerics, hyphens, and misspellings.
  • Steer clear of copyrighted names.
  • Choose your own name so that it looks professional, and consider an industry-relevant domain extension. For example,

Build a Virtual Portfolio

Once you have a domain name, use it to build a website that has details on all of your programming work. Think of it as a live portfolio with a dynamic view of your hackathon projects and programming assignments.

Your website is a fantastic place to showcase your industry certifications, as well as any awards and achievements that you might have received. You should also include links to your profiles on Github, Stack Overflow, LinkedIn, Twitter, and other social media accounts.

You can even get a logo designed with your initials and use it on your website and social media. A logo will give your personal brand an impressive, easily distinguishable visual identity. It will also make you look professional and sophisticated. For personal brand logos, use of initials is a fantastic idea, although you can include your full name or domain name as well.

The domain name for this virtual portfolio will become your online identity. You can share it with potential clients and employers so that they can experience your top-notch work first-hand.

Start Blogging

Once you have the website live, it’s a good idea to start blogging to drive organic traffic to your website. Begin by picking a niche subject that’s relevant to your work and share your expertise on that. So instead of writing about data science, computational thinking, and web development (broad topics), write about JavaScript MVC framework or Python 3.6 f-strings (niche topics).

Now, you might say that you are not a writer. Even if you are not, you can still mine for gold with your blog. After all, the secret to successful blogging is consistency, not perfect sentences (that’s what proofreaders are for!).

If you resolve to post something on your blog once every week and stick to it for a year, you will create a significant number of blog posts by the end of the term.

Some benefits of blogging are:

  • Sticking to a niche subject will rank your website high organically.
  • Posting authentic, fresh content regularly will get you backlinks from various websites who might be referencing to your posts. This will indicate to search engines that you have a credible blog.
  • Demonstrating your subject-matter expertise will indicate the scale of your knowledge to your website visitors.

A few things that you can blog about are:

  • Tips, tricks, and advice.
  • The genesis of your various projects.
  • Your experience at hackathons.
  • Interviews with other industry experts that you admire.
  • Your challenges as a programmer and how you tackle them.
  • Futuristic ideas that you wish to work on someday.

These ideas are broad and can apply to any programming blog. On the other hand, a topic such as “how to stop getting ‘SyntaxWarning’ in Python” is more aligned with a niche blog. Here are some more ideas to help you get started:

  • How to articles
  • Tutorials
  • Listicles
  • Recent upgrades
  • Reviews
  • Tools

Get Active on Social Media

It sounds like cliche advice, but getting active on social media is an easy way to get noticed and build a personal brand.

When someone is looking you up on the internet and finds your inactive social media profiles, it creates a negative impression. On the other hand, if they find an active profile with relevant posts, it piques their interest and convinces them that you are invested in your career and take interest in various other aspects of life.

And that’s exactly what your social feed needs to be: an extension of your true personality. While Facebook and Instagram are the most popular social networks worldwide, you can use Twitter and LinkedIn to target a niche professional audience. Through Twitter hashtags and LinkedIn groups, you can directly reach out to an evolved community of programmers or tech brands and startups.

You don’t need to be incessantly posting all the time (although there are free tools that would do that for you), but just putting out an update once every couple of days is a great way to start.

Here are some things you can talk about on your social media:

  • Industry news to indicate that you are up-to-date with your knowledge and keep tabs on the latest developments.
  • Posts from programming blogs you follow to strengthen your social media network (by tagging them or by engaging with them in conversation).
  • Posts from your own blog to drive more traffic to it, as well as to display your expertise.
  • Personal opinions of your interests and hobbies to add a human element to your virtual personality.

Consistency is key to building an effective brand. To that effect, register the same username across all of your digital identities, including your blog and social media networks. For example, if your blog domain is but you cannot find JohnSmith as a username on Twitter or Instagram, go for JohnSmithTech to maintain consistency.

Use Branded Links

Branded links are shortened URLs with a brand name. Usually, when you shorten a URL to share on social media, you use (or, but Google has recently decided to discontinue that service). These links are clunky and unpronounceable. Instead, you can brand these shortened links with a domain name that you own so they look professional.

For example, instead of using, the link can be branded as This gives you a valuable opportunity to reinforce your brand name with each link shared on social media (or even in emails). When you share content with a branded link, it is indicative of the authenticity of the content, since it comes with the stamp of your name. By seeing your brand name over and over, your social media followers will have a higher brand recall for you. Branded links make you look professional and credible. Most URL shortening services allow the use of custom domains.

Take Your Career to the Next Level With a Personal Brand

By using these tactics, you’ll be able to build a fantastic personal brand that will boost your career and put you on the path to continuous growth and learning.

Start small and build upon it as you go along. Take inspiration from others in your space who have an impressive online presence, and create a plan of action broken down into small chunks.

And remember, building a personal brand takes time! So take it easy as you work toward skyrocketing your career with your brand story.

from Java Code Geeks

Blog at