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 #3: Meeting with Edison
  • 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: 11 Apr 2017 1:00 AM Date Created
  • Views 1297 views
  • Likes 4 likes
  • Comments 7 comments
  • web sdr
  • upcycled_sdr
  • first tests with edison
Related
Recommended

[Upcycle it Design Challenge] Embedded Web SDR client on Analog Radio Receiver #3: Meeting with Edison

konstantinoskonstas
konstantinoskonstas
11 Apr 2017

Meeting with Intel's Edison

 

Well, since my last post, I received my Edison next morning, so I will report my experiences and ideas from the first days of trying to use it. I think that is quite important, so that others could be benefited from that.

 

Establishing an operating environment.

a. Arduino IDE

I decided not to use it and to have it removed.

Mark was kind enough to advise me the same thing, as it could only create problems than uploading sketches.;

I added Edison board to my 1.6.5 r5 IDE, but it would not compile. I had to go 1.6.8 or higher.

I decided to update to 1.8.2, although all of my work was tested with 1.6.5

I updated and tried it with Arduino Edison board.

I could see the port and gave it a “blink” bare-bone trial. OK

I did not flash Yocto 1.7.3 as the next step.

I kept the pre-installed 1.7.2 and tried to boot. OK, root access worked.

Tried couple of commands with no problem.

Now I could update to the 1.7.3 version of Yocto.

I did it manually, no problem with DFU and running the batch file from Win10 Home (32bit).

It flashed OK and then I set up password and WiFi settings.

I could use SSH now. So everything fine again.

 

b. SDK

I have also set up the Kepler version of Eclipse so that I could test the Intel SDK.

Eventually it ran with no problem.

By now it was Wednesday evening.

Next step, to play with the Grover kit.

I used the I2C LCD and the Temp sensor.

I ran some samples with the Arduino IDE and then with Java and the SDK, to make myself more familiar. I went through some updates while trying to run from Eclipse, UPM if I am not mistake.

Eventually the Temperature program worked.

But I am not really fond of those 16 by 2 LCDs, even if you can control their RGB color. So no more playing.

 

c. LCD Issues

I started to read more about MRAA and UPM in my effort to understand how I could set up my environment for my project which is my final goal.

I had to setup a plan on how to make my Arduino ATMega328 part of my software ported to Edison environment.

First of all my display. The Nokia 5110/3110 84 x 48 monochrome with the PCD8544 controller.

It was not listed among the displays listed in UPM.

I registered with the Intel community and started searching about it.

I only found that some people had tried to use it but with no success or evident success.

I decided to make some follow up to find if there was some update on that issue, but although I contacted the people that tried to use the display and had started discussions on the Intel community.

In one of the three instances the reply came to me negative and the person who had tried using the LCD, simply changed to something like JHD1313M1.

 

I then found the reference that Adafruit had a Python Library for that display and by searching further, I found that the Nokia LCD was being used with Rpi and BeagleBone.

I found the following link https://github.com/XavierBerger/pcd8544

and https://learn.adafruit.com/nokia-5110-3310-lcd-python-library/overview , so I decided that the next big milestone for me would be to manage to make the LCD play with the Edison.

 

So I have to study the documentation and carry out some tests now that I have all the hardware.

As that LCD is using Hardware-SPI, which obviously is available with MRAA, I will try using the pin connectivity that is being used also for the Sparkfun 64x48 OLED Display.

According to the schematic of that display (https://cdn.sparkfun.com/datasheets/Dev/Edison/oled_block.pdf), it is connected as follows:

D0/SCK GP109_SPI_2_CLK

D/MOSI GP115_SPI_2_TXD

D/C GP14_

RESET GP15_

CS GP110_SPI_2_FS0 or GP111_SPI_2_FS1 (by default wired to GP110)

 

So, I need to understand the GPIO nomenclature which to my thinking (please correct me if I am wrong) is different for the Arduino Board and the Breadboard.

Moreover in the Arduino board, although electrically you use Arduino naming (i.e. D0, D1, D2 …, A0, etc.), in the Edison sketch you must use the Edison GP numbering (i.e. GP109, GP115, etc.). As for the connectivity issue, my original drawing should work.

image

 

Having said that, I think making the Nokia 5110 display to work is number one priority for my project.

 

Then of course I have to see and test the interrupt issue, as in the original Arduino, I would initialize things by using the following code:

 

 

/*
=======REMOTE WEB SDR CONTROL VER 1.3=====================================
Arduino Remote Client for University of Utwente Full HF coverage WEB SDR
To tune to a specific frequency you must send over the web the sentence:
   station + Freq_temp + mode
--------------------------------------------------------------------------
UNO/Nano/Pro Mini Logical Pin Allocation

D0/RX spare
D1/TX spare
D2 spare
D3 Rotary encoder pin A - if used
D4 Rotary encoder pin B - if used
D5 Mode
D6 Frequency resolution button
D7 LCD RST
D8 LCD CE
D9 LCD DC
D10 LCD DIN
D11 LCD CLK
D12 LCD BL Backlight control
D13 spare
A0 Decrease frequency button
A1 Increase frequency button
A2 spare
A3 Band Select button  
A4 I2C SDA spare here
A5 I2C SCL spare here
--------------------------------------------------------------------------
*/
//****************** include the library code:*****************************
#include <U8glib.h>
#include <string.h>
#include <ctype.h>
#include <avr/interrupt.h>  
#include <avr/io.h>
//************** Set up MCU pins ******************************************
#define encoderPinA 3 
#define encoderPinB 4
#define Mode 5
#define Resolution 6
#define RST 7 
#define CE 8 
#define DC 9
#define DIN 10 
#define CLK 11 
#define backlight_pin 12
#define FreqDown A0
#define FreqUp A1
#define BandSe A3
//****** initialize the library with the numbers of the interface pins******
U8GLIB_PCD8544 u8g(CLK, DIN, CE, DC, RST);

I assume that the interrupt and io calls for the avr system should be replaced by the equivalent calls for Edison.

For the whole series of first tests, I will stick to the Edison Arduino board, in order to keep things as easy and clear as possible.

 

d. Other issues

I should not also forget the next task which should be to connect the USB Audio card to the Edison, but to my plan schedule the Nokia LCD is the number one priority which must be solved.

Any ideas or comments for that are more than welcomed, as that is going to be tomorrow's task without being able to calculate how long it will take to produce “hello, world” on that display!

 

That is my progress report for now, but I feel that I have a lot of things to learn, so I try to keep my comments and concerns to the point, without many illustrations.

 

I would welcome any links and guidelines that could make my Edison learning curve, smoother.

 

 

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

  • mcb1
    mcb1 over 8 years ago +1
    Moreover in the Arduino board, although electrically you use Arduino naming (i.e. D0, D1, D2 …, A0, etc.), in the Edison sketch you must use the Edison GP numbering (i.e. GP109, GP115, etc). When using…
  • DAB
    DAB over 8 years ago +1
    Nice update. It looks like you are making good progress. DAB
  • konstantinoskonstas
    konstantinoskonstas over 8 years ago in reply to mcb1 +1
    @mcb1 Thanks a lot for the guidance Mark. It starts to get clear gradually. MRAA, UPM and the like. It is 11 am Pacific time and I am trying to figure out how to set up the Python lib for the Nokia 5110…
Parents
  • mcb1
    mcb1 over 8 years ago

    Moreover in the Arduino board, although electrically you use Arduino naming (i.e. D0, D1, D2 …, A0, etc.), in the Edison sketch you must use the Edison GP numbering (i.e. GP109, GP115, etc).

    When using an Arduino sketch, the translation between GPIO and DO-D19 is done for you.

     

     

    If you are accessing the GPIO using linux, then yes you use the approriate GPIO numbering.

     

     

    Also if you highlight your code, select the >> symbol then Syntax HighLighting and choose C++ it will display in a window with the numbers.

    The window is full size while you are editing (and sometimes in Internet Explorer).

     

    Mark

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

    Moreover in the Arduino board, although electrically you use Arduino naming (i.e. D0, D1, D2 …, A0, etc.), in the Edison sketch you must use the Edison GP numbering (i.e. GP109, GP115, etc).

    When using an Arduino sketch, the translation between GPIO and DO-D19 is done for you.

     

     

    If you are accessing the GPIO using linux, then yes you use the approriate GPIO numbering.

     

     

    Also if you highlight your code, select the >> symbol then Syntax HighLighting and choose C++ it will display in a window with the numbers.

    The window is full size while you are editing (and sometimes in Internet Explorer).

     

    Mark

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

    @mcb1

    Thanks a lot for the guidance Mark.

    It starts to get clear gradually. MRAA, UPM and the like.

    It is 11 am Pacific time and I am trying to figure out how to set up the Python lib for the Nokia 5110 working with Edison.

    Actual example is for RPi, so again there is a leap here.

    But at least I know that the electrical connections won't give me a shock!

    I keep the Grove LCD as the worst case backup, so back to work.

    Konstantinos

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

    I am trying to figure out how to set up the Python lib for the Nokia 5110

     

    I seem to recall there are some examples of talking to it using the Arduino boards.

    Whether that translates into it working on the Edison (and on the Linux side) is ???

     

    Even if you can make it talk on the Arduino sketch side, getting the data from the Linux side is another headache.

    I'm imagining that you need variables that are availble to both the sketch and Linux.

     

    The issue I have seen with Yocto is that it doesn't inlcude some libraries that the other distributions have included.

     

    Good luck

     

    Mark

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • konstantinoskonstas
    konstantinoskonstas over 8 years ago in reply to mcb1

    @mcb1

    Thanks Mark for pointing that out.

    I am aware of such issues and prepared to face them.

    You are right that there is no compatibility between the two worlds, and I am well prepared to write everything from scratch in any environment that will best suit my solving the display issue and make it working. Language is not an issue. And thanks for pointing out the issue with Yocto. I have ready Ubilinux on the second Edison. But yet I want to try some things.

    What I really need to know are those don'ts with various issues. I am sure Hardware SPI is on the dark side of Edison, but I have to find out somehow. If you look at the MRAA page, say ver. 1.6.x compatibility over a number of systems (including RPi) is stated, whatever that may mean.

    So basically I am looking for the implementation method of that Python library with Edison, but I still read a few things.

    Thanks for sharing any detailed that may have come to your experienced eye with me.

    Cheers,

    Konstantinos

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

    I ran across this that Scott has done with a Nokia 6100 display .... it may help, or not.

     

    CapperLabs Greenhouse Controller - Blog 3 - Intel Edison

     

     

    Mark

    • 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