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.
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.
Top Comments