Thank you for this tremendous work, Nathan. I was looking for something to help me automate builds with my gitlab CI/CD. I have not plumbed it out all the way yet, but I did some testing with the docker image and it looks like this will make it work.
I would be happy to help out with testing and documentation of the installation. However, I cannot figure out from what is published, how to install it for Windows. I already have Python and Git installed (I use them).
Here is where I get stuck:
$ python3 -m pip install .
$ neopo install
“python3 -m pip install .” should reference a neopo installation in some way, but it doesn’t.
Hey @markwkiehl, sorry for the confusion.
You need to run the pip install command from within the cloned
The following should work in your case:
git clone https://github.com/nrobinson2000/neopo cd neopo python3 -m pip install . neopo install
Raspberry Pi manifest.json bug is back
Hi Nathan. I’ve been using neopo and it has helped tremendously with productivity. I hope you are still working the project.
I experienced the “manifest.json bug” of 2021 and it seems to have returned on the RPi. It throws the missing manifest error on installation and thereafter cannot download the executables.
I have tried it on 2 x86 Ubuntu boxes and it installs fine, so it seems to be specific to RPi.
These are RPi4 with the latest (last week’s) full “Raspberry Pi OS with desktop and common applications” installed.
I have tried with Particle pre-installed, and without, with same results. A typical log is pasted below.
Any help you can provide will be most welcome.
pi@raspberrypi:~ $ particle version 3.7.0 pi@raspberrypi:~ $ which neopo pi@raspberrypi:~ $ bash <(curl -sL neopo.xyz/install) Installing Linux dependencies... Reading package lists... Done Building dependency tree... Done Reading state information... Done dfu-util is already the newest version (0.9-1). git is already the newest version (1:2.30.2-1). jq is already the newest version (1.6-2.1). libarchive-zip-perl is already the newest version (1.68-1). libfl-dev is already the newest version (2.6.4-8). libisl15 is already the newest version (0.18-4). libncurses5 is already the newest version (6.2+20201114-2). libudev-dev is already the newest version (247.3-7+rpi1+deb11u1). libusb-1.0-0-dev is already the newest version (2:1.0.24-3). python3 is already the newest version (3.9.2-3). python3-setuptools is already the newest version (52.0.0-4). vim is already the newest version (2:8.2.2434-3+deb11u1). python3-pip is already the newest version (20.3.4-4+rpt1+deb11u1). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Cloning into '/tmp/tmp.fstOq0UvT6/neopo'... remote: Enumerating objects: 1785, done. remote: Counting objects: 100% (17/17), done. remote: Compressing objects: 100% (12/12), done. remote: Total 1785 (delta 4), reused 7 (delta 4), pack-reused 1768 Receiving objects: 100% (1785/1785), 3.32 MiB | 1.41 MiB/s, done. Resolving deltas: 100% (1040/1040), done. Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple Processing /tmp/tmp.fstOq0UvT6/neopo Building wheels for collected packages: neopo Building wheel for neopo (setup.py) ... done Created wheel for neopo: filename=neopo-361-py3-none-any.whl size=39744 sha256=8c3ea1e73b4437c0ea1ec6d3516de547d54787d657d8a4a6178ee2e7b2716c12 Stored in directory: /tmp/pip-ephem-wheel-cache-0tb3r9ty/wheels/38/70/a2/beb426c12a78cb4bd87e76038794153f054ca7845f71c7dde2 Successfully built neopo Installing collected packages: neopo Successfully installed neopo-361 Installing neopo... Finding Workbench extension URL... Downloading Workbench extension... Failed to download particle executable from extension! Error: file /home/pi/.neopo/cache/manifest.json not found. Please ensure that you have installed the dependencies: $ neopo install pi@raspberrypi:~ $ neopo update . Updating dependencies... Finding Workbench extension URL... Downloading Workbench extension... Failed to download particle executable from extension! pi@raspberrypi:~ $ neopo upgrade This command is deprecated because neopo is now installed using pip or the AUR. To upgrade neopo, either rerun the universal installer, or follow distribution specific instructions.
The root cause of this error is that the Particle Workbench extension no longer ships with a
particle binary for ARM. However, it appears that the binary is still available from
I’ve released a fix to neopo to correct this error. Please try updating/reinstalling neopo.
Thanks Nathan, I will let you know if I have any further troubles.
Hi Nathan, I was having issues installing Particle on my Raspberry Pi when I came across your service which seems sorely needed. Thank you for maintaining this project throughout the years. The issues I was having was when trying to run “particle setup” it would result in the error:
â Now to find your device(s)…TypeError: SerialPort.list is not a function
From what I could tell it seems neopo has the fix to this issue. However, I am now running into the same problems as wawhite3 above. All of the same commands yield the same errors they got. I am running 2 raspberry pi zeros with the current light raspbian OS with the desktop GUI installed and both of them run into the same issues.
“neopo install” returns:
“Downloading Workbench extension…
Failed to download particle executable from extension!”
“neopo particle login” or “neopo login setup” returns:
$Error: file /home/pi/.neopo/cache/manifest.json not found.
$Please ensure that you have installed the dependencies:
$ neopo install
Any help you can give me would be greatly appreciated.
Thanks for your time,
Thanks for using neopo!
- Are you using the latest neopo commit with the fix for the missing Particle executable?
- Are you using 32-bit or 64-bit Raspberry Pi OS? (Both architectures are supported, but
aarch64requires some additional post-install setup.)
I would recommend trying to manually install neopo:
git clone https://github.com/nrobinson2000/neopo cd neopo sudo python3 -m pip install . neopo install
Also, it’s unlikely, but it might be possible that you have multiple (conflicting) installations of neopo. You can check with:
which -a neopo
I’ve been using Arch Linux ARM on all of my Raspberry Pi’s lately, and it’s far less of a headache than stock Raspberry Pi OS. I’ve made a tool to prepare configured bootable drives for Arch Linux ARM, but it requires an x86_64 host running Arch Linux to run. I’ll publish the tool soon.
Thanks for getting back to me, to answer your first question, yes I believe I was using the latest neopo commit as I attempted to install using the Universal Installer and install from source methods listed on your website https://neopo.xyz/. The source method required the installation of python 3 beforehand as raspbian lite does not have it.
Secondly, I am using Raspbian OS Lite 32-bit installed using the raspberry pi imager, I’m still very new to this but I didn’t know if the pi zero w could run 64-bit.
So I attempted the methods you gave me, on both Pi’s when I run
which -a neopo
and when manually installing neopo as you outlined above…
carburyharry@raspberrypi:~ $ git clone https://github.com/nrobinson2000/neopo Cloning into 'neopo'... remote: Enumerating objects: 1789, done. remote: Counting objects: 100% (21/21), done. remote: Compressing objects: 100% (15/15), done. remote: Total 1789 (delta 7), reused 12 (delta 5), pack-reused 1768 Receiving objects: 100% (1789/1789), 3.32 MiB | 669.00 KiB/s, done. Resolving deltas: 100% (1043/1043), done. carburyharry@raspberrypi:~ $ cd neopo carburyharry@raspberrypi:~/neopo $ ^[[200~sudo python3 -m pip install .~ bash: $'\E[200~sudo': command not found carburyharry@raspberrypi:~/neopo $ sudo python3 -m pip install . Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple Processing /home/carburyharry/neopo Building wheels for collected packages: neopo Building wheel for neopo (setup.py) ... done Created wheel for neopo: filename=neopo-362-py3-none-any.whl size=39977 sha256=2b95a17f90a63674077a4a4a70ea36caa19f1fb43bbd0b6d809ffa775c5a2e85 Stored in directory: /tmp/pip-ephem-wheel-cache-cvhioulm/wheels/c7/03/ff/9dfe1ee4abcd34cac8fd9d533e090da8e7d89629e2b77e87d7 Successfully built neopo Installing collected packages: neopo Attempting uninstall: neopo Found existing installation: neopo 362 Uninstalling neopo-362: Successfully uninstalled neopo-362 Successfully installed neopo-362 carburyharry@raspberrypi:~/neopo $ neopo install Installing neopo... Finding Workbench extension URL... Downloading Workbench extension... Failed to download particle executable from extension!
Same result on both Pi’s.
So unfortunately still no luck, I do also have access to a raspberry pi 3 which I can use for experimenting if you would like me to check if this is a pi zero only issue. As the raspbian os lite comes with very little is it possible I am missing a program or feature which Is essential to neopo? I am willing to try installing Linux on the devices if this would make troubleshooting easier.
Apologies for coming at you with more problems. I really appreciate the help you’re providing.
I just flashed a USB of Raspberry Pi OS Lite (32-bit) and manually installed neopo on a Pi4. Worked without any hiccups.
Which Raspberry Pi Zero are you using? The older ones may not have sufficient memory to use neopo. I’d recommend trying your Raspberry Pi 3.
Below are the commands to manually setup neopo on Raspberry Pi OS:
sudo apt install git python3-pip sudo apt install libarchive-zip-perl libusb-1.0-0-dev dfu-util libudev-dev libisl15 libfl-dev python3 git vim python3-pip python3-setuptools libncurses5 jq
cd /tmp git clone https://github.com/nrobinson2000/neopo cd neopo export PATH="$HOME/.local/bin:$PATH" pip install . neopo install
export GODE_DEBUG=info neopo particle usb configure
neopo create test_project cd test_project neopo configure photon 3.3.1
$ neopo build :::: COMPILING APPLICATION text data bss dec hex filename 3532 112 1084 4728 1278 /tmp/test_project/target/photon/test_project.elf *** COMPILED SUCCESSFULLY ***
Hope this helps!
Just wanted to say thanks for putting this together. Your docker image has enabled me to add a CI/CD pipeline for my particle projects in GitLab. Really fantastic.