August 12, 2017

Back at work with the NanoPi Neo

I was last working with the Nanopi Neo back in June of 2017. So over 4 years have passed. It is always interesting to grab an old project and start working with it, so here we go.

I checked and was pleased to see that you can still purchase this board. The price is now double what it was back in 2017. You pay $16 for a board with 256M of ram, $18 for a board with 512M of ram.

My board

My board is mounted to a block of aluminum and has a pair of wires soldered to it that go to a coaxial connector for 5 volt power. Somewhere I have a 5 volt 2 amp wall wart that I can use to power it.

It has a 4 pin console header. It is different from the Orange Pi and the BBB for which I have convenient cables made up. They use a 3 pin header without 5 volts and have Tx,Rx in a different order. The pins on the Neo are:

Ground is towards the card edge, i.e. towards the bottom of the board if you hold it with the ethernet connector down (facing the ground).

We need to skip the 5 volts. I have a CP2102 cable made up that I was using on a NanoPi Fire3 board, which has the same pins. I can rob that and put it onto the Neo. It uses three "loose" wires (on my cable connect blue to Tx and purple to Rx). I get annoyed at fussing with loose wires and solder another dongle (this one a CP2104) to a little 4 pin female header I have on hand. This way I have just one thing to connect.

This will be ttyUSB0 at 115200 when I fire things up. I start picocom to talk to the console, and it works just fine.

Try powering it up

This board has an SD card in place, an 8G Verbatim set up with U-Boot and ready to do a TFTP boot of "orange.bin". This will come from /var/lib/tftpboot on my linux host. I connect an ethernet cable, then a 5 volt power supply and away we go. Just to be clear, we have:

This works, but whatever "orange.bin" is, does not run right on the Neo. Maybe we should change the U-boot setup to have it boot from neo.bin?

What I do instead is to rebuild Kyu. I check that Kyu is configured for the orange_pi (which is what I call any Allwinner H3 based board at this point. It is, so:

cd Kyu/src
make
Now I cycle power and it boots Kyu just fine. Kyu sets itself up as 192.168.0.61 on this board, and I make an entry "neo" in my /etc/hosts. I can ping "neo" just fine. I'll note that U-Boot uses 192.168.0.72 to boot.

U-Boot thinks the ethernet address is 02:20:a1:5a:dc:86.

Kyu gets a mac address of c2:c2:9b:ae:f9:5e, which is entirely different.
What the heck is that all about?
My DHCP does have an entry for 02:20:a1:5a:dc:86
My U-boot config uses "boot_kyu=echo Booting Kyu via dhcp/tftp; dhcp; go ${bootaddr}"
to boot the board.

This would make it easy to change the boot to use neo.bin. All I would have to do would be to edit /etc/dhcp/dhcp.conf. However I would then have to monkey with Kyu makefiles, so I think I will just leave everything as is. Orange.bin will have to do for all of my H3 projects, at least for the time being.

At this point I am ready to start hacking away with Kyu, for the time being ignoring the mysteries about the "61" IP number and the strange MAC address.


Have any comments? Questions? Drop me a line!

Tom's electronics pages / tom@mmto.org