element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Upcycle It
  • Challenges & Projects
  • Design Challenges
  • Upcycle It
  • More
  • Cancel
Upcycle It
Blog [Upcycle it Design Challenge] Embedded Web SDR client on Analog Radio Receiver #5: The Software Challenge goes on
  • Blog
  • Forum
  • Documents
  • Polls
  • Files
  • Events
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: konstantinoskonstas
  • Date Created: 25 Apr 2017 11:08 PM Date Created
  • Views 1711 views
  • Likes 3 likes
  • Comments 9 comments
  • web sdr
  • upcycled_sdr
  • software exploration
Related
Recommended

[Upcycle it Design Challenge] Embedded Web SDR client on Analog Radio Receiver #5: The Software Challenge goes on

konstantinoskonstas
konstantinoskonstas
25 Apr 2017

Software Exploration continues.

 

I am afraid this week my post is not going to offer to many things, as I do not have to report really much progress myself.

The reason being that I am still trying to make my Nokia 5110 LCD with Graphics capabilities, work under node.js in XDK environment.

I have spent long hours to accomplish that task, but I have not reached my desired goal yet.

In my last post I explained how my LCD works nicely under Arduino IDE, but in order to have the U8g2 graphics library work with node.js under XDK, I need to include the library to UPM.

Although I consider myself more of a Maker than a Programmer, as I am involved with programming, I considered it a necessity to take this task to add U8g2 library to UPM.

I was hoping that I could get some assistance in the form of more detailed documentation that I could study and make things move fast.

As that did not happen, I searched the internet and found the link of Shawn Hymel's Blog with an article entitled “Writing Your Own UPM Module: Getting Started” (http://shawnhymel.com/756/writing-your-own-upm-module-getting-started/).

So I decided to start from there and set up my working space for my task, both locally on my computer and on my Edison.

By now I had both Edison's up and running, so following Shawn's instructions I started my new experience with setting a working and compiling environment with Cmake and SWIG for adding my needed library/driver to UPM.

Shawn has done a very nice job, describing all the steps, but I did not have done such a task before, it took me two days to make the “Test program” work in javascript. Of course that program was a mere “Hello world” and had nothing to do with my specific library. But it was a positive start.

 

I will not spend time writing about the incompatibilities of the various software that I had to install and the required versions so that Cmake could proceed, or what needed to be removed and replaced by a newer version in order to proceed. SWIG was one of them.

Eventually by setting everything correctly after hours of searching on the internet and fixing all the error messages, I managed to get the command: “node my_mod_test.js” produce the desired result in all 3 systems of mine.

It was Sunday evening, Pacific time and I had to go much further. I had only completed the getting started part!

I then started studying two examples, the one for MAX31855 and another for the Rotary Encoder, as I was going to need that one for my project in order to get some insights.

Nevertheless, perhaps due to my knowledge, I was not confident on how I could make it work for my LCD. So I went back to study the documentation for the U8g2 library and in particular the part under the title: “Porting to new MCU platform”. (https://github.com/olikraus/u8g2/wiki/Porting-to-new-MCU-platform)

I then followed the example of writing the Hardware Extraction Layer (HAL) for another system as it was described in the example for ESP32 by Neil Koblan (https://github.com/nkolban/esp32-snippets/tree/master/hardware/displays/U8G2) and started writing a similar wrapper for Edison's UPM.

 

Currently I am trying to complete this task, compile everything and see that my LCD works under node.js . Therefore I have no more to say.

Things could have moved faster, but at my age, with my knowledge and programming capabilities that is the fastest I can go. It may take me another week, I hope less.

Otherwise I will start to be behind my schedule for the rest of the things that need to be done in order to accomplish my project. There are of course plan B and plan C options, but very honestly instead of doing this exercise now, I would prefer to use my time for implementing more features and making a richer menu with extra capabilities that I thought of in the meanwhile, including even a graphics S-meter for the SDR, although they were not included in my initial proposal. But I will start to have development limitations as time passes by. I stated from the start that Edison is an entire new ecosystem for me, quite different from what I have been working with over the last 5 years.

 

U8g2 is an open graphics library that incorporates a number of approx. 72 different types of LCDs under its hood. If I were a manufacturer that I would like to increase the number of “sensors” that could be connected to my system, i.e. Intel Edison, I would take more interest in incorporating such a library into my product's development tools and would not only offer more assistance, but would even offer to undertake such a task on my own. Having said so, I have to admit that this reflects my personal belief.

 

I can only proceed with my effort and hope that next time I will have something more successful to report.

 

On top of that, I took some time from my bedtime and I managed to update the drawing of my Edison Arduino board with the correct numbering for the SPI bus as well as IO/GPIOs that I will be using for the Rotary Encoder and the Programming Buttons according to the real conditions of Edison.

Next time if everything goes well, I will also publish the final schematic of my project with the Edison Breadboard and the level translators.

image

But for the time being I need to deal with my U8g2 library wrapper under UPM. Not in theory but in practice.

 

 

Published Posts
[Upcycle it Design Challenge] Embedded Web SDR client on Analog Radio Receiver #1: Introduction
[Upcycle it Design Challenge] Embedded Web SDR client on Analog Radio Receiver #2: Software Concept
[Upcycle it Design Challenge] Embedded Web SDR client on Analog Radio Receiver #3: Meeting with Edison
[Upcycle it Design Challenge] Embedded Web SDR client on Analog Radio Receiver #4: Software Challenges with Edison
[Upcycle it Design Challenge] Embedded Web SDR client on Analog Radio Receiver #5: The Software Challenge goes on
[Upcycle it Design Challenge] Embedded Web SDR client on Analog Radio Receiver #6: Changing the Display
[Upcycle it Design Challenge] Embedded Web SDR client on Analog Radio Receiver #7: Hardware is ready!
[Upcycle it Design Challenge] Embedded Web SDR client on Analog Radio Receiver #8: Problem with Audio.
[Upcycle it Design Challenge] Embedded Web SDR client on Analog Radio Receiver #9: Problem with Browser
[Upcycle it Design Challenge] Embedded Web SDR client on Analog Radio Receiver #10: Making the Web SDR Client work!
[Upcycle it Design Challenge] Embedded Web SDR client on Analog Radio Receiver #11: One of its kind!
  • Sign in to reply

Top Comments

  • konstantinoskonstas
    konstantinoskonstas over 8 years ago in reply to Workshopshed +3
    mcb1 Workshopshed Thank you both for your comments and encouragement. By all means it is progress. Whatever you learn, what you read, what enhances your knowledge and perspectives can be considered progress…
  • Workshopshed
    Workshopshed over 8 years ago in reply to mcb1 +2
    I'd agree with Mark, looks like progress to me. Things like menus are nice but if you focus on what you need to create your "minimal viable product" for the challenge then you can add the menus later.…
  • mcb1
    mcb1 over 8 years ago +1
    as I do not have to report really much progress myself. Not sure I'd agree with that. You've highlighted a lot of things that you've done to get closer to the design goal. You've provided some very useful…
Parents
  • DAB
    DAB over 8 years ago

    As others have stated, anytime you discover and issue and share it with others, you have made great progress for the community.

     

    Knowing that things cannot be done is just as valuable as knowing they can be done.

     

    Technical issues identify areas where more support is needed and generally results in great innovative solutions.

     

    Have you considered just using an Arduino to drive the LCD and use a serial link to pass the data?

     

    DAB

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
Comment
  • DAB
    DAB over 8 years ago

    As others have stated, anytime you discover and issue and share it with others, you have made great progress for the community.

     

    Knowing that things cannot be done is just as valuable as knowing they can be done.

     

    Technical issues identify areas where more support is needed and generally results in great innovative solutions.

     

    Have you considered just using an Arduino to drive the LCD and use a serial link to pass the data?

     

    DAB

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
Children
  • konstantinoskonstas
    konstantinoskonstas over 8 years ago in reply to DAB

    Thanks a lot DAB.

     

    In my wildest dreams, yes! Plan D.

     

    But what about Plan C?

    Get a Sparkfun OLED display and a Baseboard. Piggyback everything, no soldering, just power.

    An easy out of the box idea. But it kills my number one building principle. Build with what you have in hand.

    Cheers.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • DAB
    DAB over 8 years ago in reply to konstantinoskonstas

    True, but sometimes a schedule demands a compromise. image

     

     

    DAB

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube