UniBone - Building

Parent Category: Projects Category: UniBone Written by Administrator

Here are some hints how to build an UniBone and test it.

Prepare the BeagleBone

1. Download the SDcard image

2. Make an SDcard from the image. On Ubuntu:

2.1 Plug a new sdcard of at least 16GB into your card reader. After recognition the desktop file explorer may pop-up some window.

2.2. Determine the Linux SDcard device:

joerg@vmubuprog:~$ dmesg | tail
[   45.200662] usbcore: registered new interface driver usb-storage
[   45.204700] usbcore: registered new interface driver uas
[   46.199822] scsi 33:0:0:0: Direct-Access     Generic  STORAGE DEVICE   0903 PQ: 0 ANSI: 6
[   46.201107] sd 33:0:0:0: Attached scsi generic sg2 type 0
[   46.482076] sd 33:0:0:0: [sdb] 62521344 512-byte logical blocks: (32.0 GB/29.8 GiB)
[   46.488105] sd 33:0:0:0: [sdb] Write Protect is off
[   46.488108] sd 33:0:0:0: [sdb] Mode Sense: 21 00 00 00
[   46.494056] sd 33:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[   46.524458]  sdb: sdb1 sdb2 sdb3 sdb4 < sdb5 >
[   46.544925] sd 33:0:0:0: [sdb] Attached SCSI removable disk

The output above means that the raw SDcard is "/dev/sdb"

2.3. To write the zipped image onto the card type something like:

joerg@vmubuprog# sudo -s
[sudo] password for joerg:
root@vmubuprog# gunzip <unibone_sdcard_2018_11_21.dd.gz | time dd of=/dev/sdb bs=1M
13+360271 Datensaetze ein
13+360271 Datensaetze aus
15931539456 Bytes (16 GB) kopiert, 828,463 s, 19,2 MB/s
0.00user 9.66system 13:48.46elapsed 1%CPU (0avgtext+0avgdata 3232maxresident)k
200inputs+31116288outputs (1major+350minor)pagefaults 0swaps

This make take some time.

3. Optionally cut a trace on the BBB to disable the onboard eMMC. This is necessary to enable GPIO pin 13 of PRU1, which is normally not used.

4. Put the SDcard into the BBB. If you have a 5V power supply, you can operate the BBB already independent of UniBone. Network name is "unibone", login with "root/root".

5. Set the BeagleBones "hostname"

The initial network name of the BBB is "unibone". If you use multiple UniBones, each must get a different name. The hostname is found on the SDcard filesystem at /etc/hostname. You can edit this on the Ubuntu host: re-plugin the SDcard, navigate to /media/something/etc,  do a "sudo nano hostname".

Populate the board

There's not much to say about it. First cut off the two small adapter boards, see below. Then solder best in that order:

  1. all the SMDs. I use a standard iron, SMD flux and thin SMD tin-solder.

  2. flat parts: resistors, LEDs, capacitors.

  3. high parts: transistors, pin headers, IC sockets, switches and the relay.

  4. clean the board.

  5. apply an unique serial number label.

As I never seen it before, an automatic production run is fascinating to me:



Mount BBB onto PCB

bbb mounted


Crimping the flexible BBB connectors

It is 2x25 pin width, as there are no 23 pin crimp parts available.

The two adapters are different and come in "left" and "right" orientation.

building flex adapter 1


  1. Cut 4.5 cm of 50 pin flat cable
  2. Crimp the 2x25 pin male solder connector to one end. To crimp the PCB side with its protruding pins, you can print and use the "50pin_crimper.stl" helper.
  3. Crimp a 2x25 pin female header to the other end. Contact openings must look away from solder connector pins.

building flex adapter 2

Manufacturing the "180 degree adapter"

Two 2x23 pin pinheader adapters turn the BeagleBone connectors by 180 degree, so the flexible connectors to the PCB do not waste vertical space.

Both are symmetric. In principle just two 2x23 pin headers are soldered onto an adapter board. But the pinheader to be plugged into the BBB are shorter than usual ... that "vertical space" challenge again. The shorter pins should have a length of 6.5mm .

building 180degree adapter 7

There are several ways to solder pins with reduced highs in to the adapter board:

Bad idea: solder-in the regular pin header,  clip off the excess pin length, and try to remove the black plastic strip at last. Good luck.

Better: pull out 46 separated pins from a regular pinheader, plug them all into the BBB headers (which is used as alignment tool), plug the adapter PCB onto the 2x23 protruding pins, solder, and clip-off excess pin lengths on the solder side.

With 3D printed helpers: do not use a 2x23 header, but two 1x23 headers. Use a 3D printed template and a vise to move the plastic ruler to the pin ends. Plug a 2nd 3D printed distance element onto the pins, between plastic ruler and PCB. Solder all pins, the distance element is now locked in. Squeeze a small screw driver between plastic ruler and distance block, until the plastic ruler loosens (it moves much easier if you use two separate 1x23 headers instead of a monolitic 2x23 strip). Clip-off excess pin lengths on the solder side.

building 180degree adapter 1 building 180degree adapter 3
building 180degree adapter 4 building 180degree adapter 5


Mounting all together

Attention: when pushing the 46-pin "180 degree adapter" onto the 50 pin "flexible adapter", assert that pins 1 are aligned!

Else the BBB and/or the UniBone chips may get toasted by wrong 5V inputs.

building adapters 1


building adapters 2

Optional spacers

The BeagleBone has a good and flexible hold between the two 50 pin flat cables. However it looks more professional with four 3D printed spacers, see attachement.


Now continue with tests ...

Download this file (46pin_short_headers_distance.stl)46pin_short_headers_distance.stl[Distance element for short pin headers on "180 degree" adapter]194 kB
Download this file (50pin_crimper.stl)50pin_crimper.stl[Adapter to crimp 50 pin male connector]209 kB
Download this file (spacers.stl)spacers.stl[Set of 4 BBB spacers]94 kB