Nucleo F401RE Uplink process keeps me waiting


#1

Hi, Zerynth team,

I am evaluating Zerynth with Nucleo F401RE, but there is something wrong.

Latest Zerynth Studio installed
ST Nucleo F401RE viperized.

* Select board
* virtualized a board (c0956945-e215-4623-9c36-9cf903959cf6 for st_nucleof401re)
* cloned a project
* verified and compiled successfully
* uplink and reset board in 5 miniute

ZERYNTH VM found (c0956945-e215-4623-9c36-9cf903959cf6 for st_nucleof401re)
Starting the UpLinking phase…
  symbols: 159
  membase  @20001F78
  romstart @08020000
  flash    @00060000
Erasing flash…
Sending Bytecode: 5484 bytes (available 393216)

The the loop starting to run…Forever.

I guess the user code has not been uploaded at all. Is there any information like detail log to find out what’s wrong? Or should I use st-flash to flash the bytecode into flash from @08020000? I don’t quite understand the following statement, Would you explain in detail?

  symbols: 159 # maybe symbol for code?
  membase  @20001F78 # what for?
  romstart @08020000 # user python bytecode stored from @08020000?
  flash    @00060000 # what is it ?



#2

Hello @allankliu and welcome!

I will be able to test the issue tomorrow morning (left my nucleo at the office :frowning: ). However in the meantime, could you provide details about your system? Sometime windows has problems with the Nucleo serial port.

As for your other questions:

- symbols: they are the symbols exported by the VM and that can be linked to the non relocated C object code contained in the bytecode. Zerynth provides hyvrid programming, you can mix Python and C.
- membase: it is the ram address where C object code data is stored, and it is used by the uplinker to relocate C object code
- romstart: the address bytecode and now relocated C object code are saved to flash
- flash: the amount of free flash available on the board (the last 3 sectors of 128k each)

Due to the relocation of C object code, flashing bytecode directly to 08020000 will not work.

Let you know asap.


#3

Thanks, Giacomo for your support.

I have installed Viper several months ago, which has been uninstalled and upgraded to Zerynth.

O/S:Windows 7 Home Basic 64bit.
Installation: C:\Program Files\Zerynth
Python: C:\Python27 (Python2.7.11 64bit version)

(Is it possible conflict with my exising Python2.7? )

Path=
C:\ProgramData\Oracle\Java\javapath;
C:\WinAVR-20081205\bin;
C:\WinAVR-20081205\utils\bin;
C:\Program Files\Common Files\Microsoft Shared\Windows Live;
C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;
C:\Windows\system32;
C:\Windows;
C:\Windows\System32\Wbem;
C:\Windows\System32\WindowsPowerShell\v1.0\;
C:\Program Files (x86)\Windows Live\Shared;
C:\Python27;
C:\Python27\Scripts;
C:\Program Files
odejs\;C:\Program Files (x86)\Git\cmd;
C:\Program Files\TortoiseSVN\bin;
C:\Go\bin;

And I tried to locate the log file of zerynth, But I can not find it.


#4

The format of my input is lost. Sorry for that.


#5
Giacomo said:
Hello @allankliu and welcome!

I will be able to test the issue tomorrow morning (left my nucleo at the office :( ). However in the meantime, could you provide details about your system? Sometime windows has problems with the Nucleo serial port.

As for your other questions:

- symbols: they are the symbols exported by the VM and that can be linked to the non relocated C object code contained in the bytecode. Zerynth provides hyvrid programming, you can mix Python and C.
- membase: it is the ram address where C object code data is stored, and it is used by the uplinker to relocate C object code
- romstart: the address bytecode and now relocated C object code are saved to flash
- flash: the amount of free flash available on the board (the last 3 sectors of 128k each)

Due to the relocation of C object code, flashing bytecode directly to 08020000 will not work.

Let you know asap.

Hi, Giacomo, any good news?


#6

Hi allankliu,
 
can you please install a console emulator ( https://conemu.github.io/ for example ), open Zerynth from there and send us the complete upload log?

Thank you


#7
LorenzoR said:
Hi allankliu,
 
can you please install a console emulator ( https://conemu.github.io/ for example ), open Zerynth from there and send us the complete upload log?

Thank you

Hi, Lorenzo,

The conemu is great. But I have no idea how to run Zerynth from there. Just cd and run the exe?

#8
LorenzoR said:
Hi allankliu,
 
can you please install a console emulator ( https://conemu.github.io/ for example ), open Zerynth from there and send us the complete upload log?

Thank you

Hi Lorenzo,

I downloaded the lateset installer and install from scratch. Viperize my NUCLEO-401RE again. Apprently it doesn't viperize properly. I tried follow post here. But the bin viperized will complain for certain ID. I guess your studio will check MCU UID for reference. So I download the bin via "viperize" button, save it as bin file and save it to NUCLEO board. Yes, it will not complain any more.

However the uplink still doesn't work at all. And it is the log in studio.

ZERYNTH VM found (04bxxxxx-xxxxx-xxxx-xxxxx-xxxx for st_nucleof401re)
Starting the UpLinking phase...
symbols: 159
membase: @2000203C
romstart: @08020000
flash: @00060000
Erasing Flash...
Sending ByteCode: 4778 bytes (available 393216)

```

I hide the ID number which is meanless for me.

Here is the snapshot of my desktop as following, just for your reference.

And the other attachment "zerynth" is log file from conemu. Thanks for your recommendation and help.

After fix this issue, I can evalute the zerynth and complete my new book for Full IoT Development with Python.



#9

Hello @allankliu,

let’s try to debug the issue by identifying some possible error sources:

- Do you have another Nucleo F401RE to see if the behaviour is reproducible across different hardware?
- Can you try Zerynth on a Mac or Linux machine?
- Do you have all the Zerynth packages updated to the latest version?
- What is the baudrate that shows up in the message console when trying to uplink?



#10
Giacomo said:
Hello @allankliu,

let's try to debug the issue by identifying some possible error sources:

- Do you have another Nucleo F401RE to see if the behaviour is reproducible across different hardware?
- Can you try Zerynth on a Mac or Linux machine?
- Do you have all the Zerynth packages updated to the latest version?
- What is the baudrate that shows up in the message console when trying to uplink?


Hi, Giacomo,

  • Spare board. I am sorry I have to spent my limited budget on several boards, the replacement is only available in case one board is bricked or damaged physically.
  • I will try to install Zerynth into Ubuntu inside VirtualBox.
  • Yes, latest version of installer is used, However I know it is only a "bootstrap" installer, and it will download Zerynth components by itself. but I am not so sure about its components download status. Is there any log for checking?
  • I haven't checked my baudrate, and I didn't change it either. I guess maybe "115200bps"?
Is there any command line tools to uplink user script to board? Maybe it is an extra work for you. I remember Zerynth claims itself an open source project.



#11

Trying the Virtualbox route can be a good idea. Let me know if it works.

As for the latest packages, you can check in the about dialog (under the help menu), there is the complete list of installed packages. If you can copy it here, I can check if everything is up to date. Otherwise, from the “puzzle” icon on the left grey vertical bar you can access the package manager. 


First, click the spinner icon top right to refresh the package list, and then check if new packages are available. Another possible way, a bit brute force, is to reinstall Zerynth Studio from scratch.

As for the command line tools, they are “almost” there. The source code can be found under the Zerynth installation directory (on windows under C:\users\your-username\zerynth\env\core\official), more precisely under the uplinker folder. However at the moment, the uplinker is not completely uncoupled from the Studio.

#12

Hi, Giacomo

Here is all my installed package. It seems all right. About Virtualbox, it has some “new” issue. Since Zerynth is only 64bit, I have enable 64bit support in BIOS, otherwise only 32bit Linux can be used.

All packages

Libraries
r0.3.0Ultrasonic Sensor HC-SR04
r0.1.0Temp & Humidity Click
r0.1.0Thumbstick Click
r0.1.2Click_Bargraph
r1.0.0Adafruit Bluefruit
r1.0.0Broadcom 43362 Driver
r1.0.0Broadcom 43362 Driver
r1.0.0Texas Instrument CC3000 driver
r1.0.0Animator
r1.0.0Ring Tone Text Transfer Library
r1.0.0InfraRed Library
r1.0.0DS1307
r1.0.0Melexis MLX90615
r1.0.0Neopixel LED Library
r1.0.0Servo Motor Library
r1.0.0Smart Sensors Library
r1.0.0Texas Instrument CC3000 driver
r1.0.0TOI Shield
r1.0.0MQTT
r1.0.2Endure Pisa Workshop
r1.0.0MAST Workshop
r1.0.0Zerynth App Module
r0.1.1DHTlib
r1.0.0Texas Instrument TMP112
VMs
r1.0.5Arduino Due Virtual Machine
r1.0.5Flip & Click Sam3X Virtual Machine
r1.0.5Particle Core Virtual Machine
r1.0.5Particle Photon Virtual Machine
r1.0.6ST Nucleo F401RE Virtual Machine
r1.0.5UDOO Virtual Machine
Boards
r1.0.5Arduino Due
r1.0.5Flip & Click Sam3X
r1.0.5Particle Core
r1.0.5Particle Photon
r1.0.6ST Nucleo F401RE
r1.0.5Udoo
Core
r1.0.2Zerynth Compiler
r1.0.0Zerynth Documentation
r1.0.2Zerynth Examples
r1.0.3Zerynth Studio
r1.0.3Zerynth Standard Library
r1.0.1Zerynth Toolbelt
r1.0.0Zerynth Uplinker
r1.0.2Zerynth VM
r1.0.0Zerynth Package Manager
Sys
r1.0.0ARM GCC Toolchain for Windows 64
r1.0.0Bossac for Windows 64
r1.0.0Zerynth Browser
r1.0.0DFU Utils for Windows 64
r1.0.0Git
r1.0.0Zerynth Runtime
VHAL
r1.0.2Hardware Abstraction Layer Atmel SAM3X
r1.0.2Hardware Abstraction Layer STM32 (common)
r1.0.1Hardware Abstraction Layer STM32F1
r1.0.2Hardware Abstraction Layer STM32F2
r1.0.2Hardware Abstraction Layer STM32F4
Meta
r1.0.2Zerynth Standard Boards
r1.0.0Zerynth Core


#13

Hi Giacomo,

Giacomo said:
Trying the Virtualbox route can be a good idea. Let me know if it works.

As for the latest packages, you can check in the about dialog (under the help menu), there is the complete list of installed packages. If you can copy it here, I can check if everything is up to date. Otherwise, from the "puzzle" icon on the left grey vertical bar you can access the package manager. 

First, click the spinner icon top right to refresh the package list, and then check if new packages are available. Another possible way, a bit brute force, is to reinstall Zerynth Studio from scratch.

As for the command line tools, they are "almost" there. The source code can be found under the Zerynth installation directory (on windows under C:\\users\\your-username\\zerynth\\env\\core\\official), more precisely under the uplinker folder. However at the moment, the uplinker is not completely uncoupled from the Studio.

I tried zerynth in Ubuntu 12.04 64bit, it has some more issues:

1) Something wrong with git, no matter in create file, clone project. Therefore git is its dependency ?
2) Document is locked. so clone code is failed.
3) Console can not onpen ST-LINK ACM0
4) Virtualbox only support limited viewport (VGA), so I have to install enhancement components for Virtualbox.

Good news is board viperization works.

#14
  1. try to install git in ubuntu, then move to ~/.zerynth/env/sys/git. Delete the git executable there and create a link to the ubuntu git (ln -s /usr/bin/git I believe)
  2. should be solved by correct project cloning
  3.  :'( 

#15

Thanks to Giacomo’s help.

The problem is solved by upgrading firmware of ST-LINK.


#16

Bravo.


#17

太棒了! :D 


#18

i am having the same problem recently on my mac os sierra, i can flash the same board on my windows machine without any problems. 

can you please help me?

i am using the latest firmware :V2.J27.M15


#19

hi @orhanerdem 
we’ll have a look at it.
most of this issues should be solved by the release 2 of Zerynth we will publish on January.
I’ll let you know as soon as the Nucleo will be supported on the Zerynth r2 beta.
 


#20

Thanks, i’ll be looking forward