Skip to the content
PCBKitNew board
2 layers11.4 × 31.8 mmHivee, the printed circuit board in 3D

Breadboard-able Cortex A7 dev board

Size
11.4 × 31.8 mm
Copper layers
2
Thickness
1.6 mm
Parts
3
Nets
24
Pads
48
Tracks, vias
24, 0
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
15 Mar 2019
Updated
18 Dec 2020

Overview

Hivee is an open-source printed circuit board by breadbee, from the breadbee/breadbee repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 11.4 × 31.8 mm with 3 parts on 24 nets, routed with 24 tracks and 0 vias.

It belongs with the computers and single-board computers and microcontroller boards boards of this library.

README

README.md

Breadbee

A very small, 32mm x 30mm, ARM Cortex A7 development board that costs about ~$10 to make in low quantities and can be assembled at home with a cheap hot air rework station. With a small adapter socket it can be mounted vertically in a standard breadboard.

The breadbee is based on a relatively unknown IP camera SoC, the MSC313E, from a company called MStar (now part of MediaTek as a subsidiary called SigmaStar). You might have never heard of MStar but you probably have one of their chips in your TV.

Breadbee number one

Features

These are features that are working:

[0] MStar says it's 800MHz but their own cpufreq code says they clock it to 1GHz Clocking up to 1.1GHz works fine running dhrystone for hours but causes random lock ups if the spi nor controller and ethernet are fighting for bus access. [1] One UART is used by the serial console, two more are available via muxing.

The chip has a bunch of stuff in it that isn't supported yet:

  • MUSB USB device controller
  • Camera interface, h264 encoder, mjpeg etc.
  • Audio ADC/DAC
  • Crypto engine that seems to be able to do AES encrypted DMA transfers, memory mapped AES encryption etc
  • Some sort of IR decoder that can wake the chip up based on the IR codes it sees.
  • 6 byte unique device ID and efuse for key storage
  • command queue dma controller

It's full of flashy magic!

PWM blinky

Power consumption

According to a Kyoritsu KEW 1062 inline with the vbus of a usb cable:

stateEthernet onRTC wakevalue
Booted idleyesN/A138mA
Booted idlenoN/A113mA
Memory sleepYes12mA

Board Revisions

  • Rev0 - Original version, works.
  • Rev1 - Same as rev0 basically but the QFN80 footprint is slightly fixed to not have very thin pads on one side. Rev1 has one weird pad on the QFN80 footprint and an overlapping extra trace on one of the USB signals.

Motivations

  • Networked microcontrollers are a disaster waiting to happen; Many solutions - even commercial ones - use LWIP as the TCP/IP stack with no intention of actually maintaining it, use relatively unknown TLS libraries because of lack of memory, have no memory protection, no isolation between the moving parts.

  • There are no solutions yet that can run a real OS like Linux that can be integrated by hobbyists into boards from cheap PCB vendors that don't have show stopping limitations. I.e. the AllWinner V3s is very similar to the SoC used here but it only has one SPI controller that is lost as soon as you put SPI NOR on it. The MSC313E has just enough of the usual microcontroller peripherals to make it useful, comes in a (relatively) easy to work with QFN package, is tiny and costs ~$4. It is a bit harder to integrate into your designs than a microcontroller that requires a single power supply but all of the information you would need to do so is right here. The schematic for the breadbee is incredibly simple.

  • There are single board computers out there that have more cores, more memory etc and are still around $10 but they are over kill for applications where even an ESP32 has enough horse power and they aren't usually something you can integrate into your project without reserving considerable space.

  • Why not? The MSC313E is a Cortex-A so getting Linux running from scratch was relatively simple. The peripherals are super weird in places but not totally insane.

But where's the WiFi!>!!111

The breadbee is meant to be a "minimum viable product" to get the ball rolling. It's impossible to write drivers for the SDIO controller or USB needed for WiFi without a platform to work on. Breadbee is that platform. Once SDIO works there will be an Ampak AP6212 based module to add wifi to breadbees and maybe a respin of the breadbee with the ethernet jack replaced with an Ampak module.

A simpler alternative consists in using an already supported USB-to-WiFi PCB module given that the breadbee's USB host controller already works fine. This project is documented here.

Can I have one.. where do I get the chips..

  • If you ask very nicely and you are willing to do something like write a nice python library or flesh out drivers for the board it's possible you can have one of the prototype boards for FREE! Get in touch!

  • If you just want to buy one the intention is to put the board up on a crowd sourcing site at some point. When that happens that information will be here. crowdsupply will eventually be selling premade boards. This might take a while though.

  • If you want chips to integrate into your own projects and don't have contacts in Shenzhen to get them get in touch and we'll figure something out. If you want 2080 of them getting them isn't a problem. If you want one or two I have a small supply. If the crowd sourcing happens and there is enough money left to buy extra chips to distribute in more accessible ways I will. Since April 2020 chips have now also started to turn on up ebay.

  • The gerbers have been uploaded to OSH park (rev1) ready to order. OSH park (rev0)

Software

Note that this is all in flux right at the moment. These repos are getting rebase'd fairly often.

U-boot

There is a basic port of u-boot that so far take over from the MStar IPL and load a kernel from the SPI NOR, write it etc. See boot process below for more details.

https://github.com/fifteenhex/u-boot/tree/msc313

Kernel

All of the above features work to some degree in the work tree. Mainlining is in progress but will take time. For more info please see the linux-chenxing.org page about mainlining.

Buildroot

Combines the u-boot and kernel above with a root filesystem and generates flashable images. There are some small pieces of a board configuration application called "beecfg" to setup pinmuxing etc.

https://github.com/fifteenhex/breadbee_buildroot

BoM

Google Sheet

Pin Table

J2 - Main 2.54mm header

interrupt5v tolerantnotesalt functionsname##namealt functionsnotes5v tolerantinterrupt
+5v12+3v3
gnd34pm_gpio4[0]yesyes
i2c1_scl56i2c1_sda
yesej_tck, pwm4spi0_cz78spi0_ckej_tms, pwm5yes
yesej_tdo, pwm6spi0_di910spi0_doej_tdi, pwm7yes
yessar_gpio21112sar_gpio3yes
yessar_gpio11314sar_gpio0yes
yescsspi0_cz, pwm0fuart_rx1516fuart_txspi0_ck, pwm1clkyes
yesmosi, [1]spi0_di, pwm2, uart1_rxfuart_cts1718fuart_rtsspi0_do, pwm3, uart1_txmisoyes
sr_io71920sr_io6
sr_io52122sr_io4
sr_io32324sr_io2

0: This is a special pin that has to be explictly unlocked to be set. It seems to be intended for powering down the main CPU. It might move on rev1.

1 - When fuart is mux'd in it's also possible to mux'in uart1 and get a working rx only second uart here.

J4 - Misc/High speed interfaces

  • Note the USB and SD/SDIO are not guaranteed to work as literally no care was taken to route those signals properly on rev0.
name#alt functions5v tolerantinterruptnotes
+3v31
sd_d32spi1_doyesmiso
sd_d23spi1_diyesmosi
sd_d14spi1_ckyesclk
sd_d05spi1_czyescs
sd_cmd6yes
sd_clk7yes
pm_sd_cdz8yes
gnd9
+5v10
usb_dm11
usb_dp12
gnd13
sr_io1514
sr_io1415
sr_io1316
sr_io1217
sr_io1118
sr_io1019
sr_io920
sr_io821

Test Points

  • The audio pins are broken out to a series of test points on the left side of the parts size of the board.
  • pm_irin is broken out to a test point on the ethernet jack side of the board.

Using JTAG

JTAG is enabled at boot up on the spi0 pins by the u-boot SPL.

More technical info

linux-chenxing has more info about mstar/sigmastar socs.

Articles etc

A nice blog entry from Willy about his experience building boards

Parts

3
QtyValueFootprintReferences
2Conn_01x12_MaleConnector_PinHeader_2.54mm:PinHeader_1x12_P2.54mm_VerticalJ2, J3
1Conn_02x12_Odd_EvenConnector_PinSocket_2.54mm:PinSocket_2x12_P2.54mm_VerticalJ1

Questions

How big is the Hivee PCB?

It measures 11.4 × 31.8 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Hivee use?

3 parts. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Hivee KiCad files?

From the breadbee/breadbee repository on GitHub, at the commit this page was made from: the board is hivee/hivee.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Hivee design in my own project?

Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

More from breadbee/breadbee

1
  • 4 layers32 × 30 mmBreadbee, the printed circuit board in 3D

    Breadbee

    breadbee/breadbee

    Breadboard-able Cortex A7 dev board

    83 parts211GPL-3.0

Similar boards

  • 2 layers40 × 30 mmBlinky, the printed circuit board in 3D

    Blinky

    earthtojake/text-to-cad

    Design physical products with AI

    3 parts26kMIT
  • 2 layers51.9 × 16 mmPassive2-rpi non standard adapter, the printed circuit board in 3D

    Passive2-rpi non standard adapter

    hzeller/rpi-rgb-led-matrix

    Controlling up to three chains of 64x64, 32x32, 16x32 or similar RGB LED displays using Raspberry Pi GPIO

    3 parts4.4kGPL-2.0
  • 2 layers16.3 × 16.3 mmSensor, the printed circuit board in 3D

    Sensor

    scottbez1/splitflap

    DIY split-flap display

    3 parts4.2k
  • 2 layersSub, the printed circuit board in 3D

    Sub

    atopile/atopile

    Design circuit boards with code! ✨ Get software-like design reuse 🚀, validation, version control and collaboration in hardware; starting with electronics ⚡️

    3 parts4kMIT
  • 2 layers85 × 30 mmDual stomp, the printed circuit board in 3D

    Dual stomp

    torvalds/GuitarPedal

    Linus learns analog circuits

    3 parts2.5kGPL-2.0
  • 2 layers124.5 × 33.7 mm172319-1 connector, the printed circuit board in 3D

    172319-1 connector

    rusefi/rusefi

    rusefi - GPL internal combustion engine control unit

    3 parts1.2k
  • 2 layers10.5 × 83 mmProgrammingAdapter, the printed circuit board in 3D

    ProgrammingAdapter

    stuartpittaway/diyBMSv4

    Version 4 of the diyBMS

    3 parts1.1k
  • 2 layers21.2 × 51.3 mmPico reset, the printed circuit board in 3D

    Pico reset

    hackclub/sprig

    🍃 Learn to code by making games in a JavaScript web-based game editor.

    3 parts1.1kMIT