Difference between revisions of "Nutcracker"

From PINE64
Jump to navigation Jump to search
(Formatting updates, add some more info about USB-C issue)
Line 4: Line 4:
  
 
[[File:Pine64_BL602_EVB_photo-3-small.jpg|400px]]
 
[[File:Pine64_BL602_EVB_photo-3-small.jpg|400px]]
 +
  
 
== BL602 Specifications ==
 
== BL602 Specifications ==
Line 52: Line 53:
  
 
[[File:BL602_Block_Diagram.jpg|600px]]
 
[[File:BL602_Block_Diagram.jpg|600px]]
 
  
  
Line 60: Line 60:
 
[[File:PADI-II_EVB.png]]
 
[[File:PADI-II_EVB.png]]
 
* [https://files.pine64.org/doc/Pinenut/Pine64%20BL602%20EVB%20Schematic%20ver%201.1.pdf PineCone BL602 EVB schematic ver 1.1]
 
* [https://files.pine64.org/doc/Pinenut/Pine64%20BL602%20EVB%20Schematic%20ver%201.1.pdf PineCone BL602 EVB schematic ver 1.1]
** Note: Current schematic, cc1 and cc2 share one 5.1KOhm resistor. Next schematic design will separate out the cc1 and cc2 has it own 5.1KOhm resistors
+
** Note: In PineCone revision 1.1 ("BL62B_EVB V1.1" silkscreened on back of board), CC1 and CC2 share one 5.1KΩ resistor. This means the board will fail to power when you use an e-marked USB-C cable like the one that comes with Apple chargers. See [https://medium.com/@leung.benson/how-to-design-a-proper-usb-c-power-sink-hint-not-the-way-raspberry-pi-4-did-it-f470d7a5910 this article] for details of why this happens. The next schematic design will give each line its own 5.1KΩ resistor as per the USB-C specification.
 
* The board uses a CH340 Serial/USB adapter. This chip is commonly used in Arduino-class development boards. It is a full speed (12Mbps) USB interface and has vendor ID 0x1a86 with product ID 0x7523.
 
* The board uses a CH340 Serial/USB adapter. This chip is commonly used in Arduino-class development boards. It is a full speed (12Mbps) USB interface and has vendor ID 0x1a86 with product ID 0x7523.
 
* The GPIO pins (11, 12, 14, 17) plus the nearby RESET, POWER, and GND pins are all located on one side of the board, on J1 to provide JTAG connection.
 
* The GPIO pins (11, 12, 14, 17) plus the nearby RESET, POWER, and GND pins are all located on one side of the board, on J1 to provide JTAG connection.
Line 69: Line 69:
 
** [https://files.pine64.org/doc/datasheet/Pinenut/Bouffalo%20Lab%20BL602_BL604_DS_en_Combo_1.1.pdf Bouffalo Lab BL602 SoC Datasheet V1.1]
 
** [https://files.pine64.org/doc/datasheet/Pinenut/Bouffalo%20Lab%20BL602_BL604_DS_en_Combo_1.1.pdf Bouffalo Lab BL602 SoC Datasheet V1.1]
 
** [https://files.pine64.org/doc/datasheet/Pinenut/Bouffalo%20Lab%20BL602_Reference_Manual_en_1.1.pdf Bouffalo Lab BL602 SoC Reference Manual V1.1]
 
** [https://files.pine64.org/doc/datasheet/Pinenut/Bouffalo%20Lab%20BL602_Reference_Manual_en_1.1.pdf Bouffalo Lab BL602 SoC Reference Manual V1.1]
***  Please note that the Chinese wording "寄存器描述" means "Register Description" in reference manual ver 1.1
+
***  Please note that the Chinese wording "寄存器描述" means "Register Description" in reference manual v1.1.
 
* USB/Serial adapter:
 
* USB/Serial adapter:
 
** [https://cdn.sparkfun.com/datasheets/Dev/Arduino/Other/CH340DS1.PDF CH340 serial converter]
 
** [https://cdn.sparkfun.com/datasheets/Dev/Arduino/Other/CH340DS1.PDF CH340 serial converter]
Line 93: Line 93:
  
 
== Development efforts ==
 
== Development efforts ==
* [https://github.com/pine64/bl_iot_sdk PineCone BL602 GitHub Page (PINE64 fork)] has compilers, linkers, and all the code to build on Windows, Linux(x64), and MacOS.
+
* [https://github.com/pine64/bl_iot_sdk PineCone BL602 GitHub Page (PINE64 fork)] has compilers, linkers, and all the code to build on Windows, Linux (x86_64), and MacOS.
 
* [https://github.com/bouffalolab/bl_iot_sdk Bouffalo Lab GitHub Page]
 
* [https://github.com/bouffalolab/bl_iot_sdk Bouffalo Lab GitHub Page]
 
* [https://github.com/renzenicolai/bl602-docs/ BL602 Developer organize documentation GitHub Page]
 
* [https://github.com/renzenicolai/bl602-docs/ BL602 Developer organize documentation GitHub Page]
Line 101: Line 101:
 
* [https://github.com/pine64/bl602-sdio-linux Linux kernel module]
 
* [https://github.com/pine64/bl602-sdio-linux Linux kernel module]
 
* [https://github.com/spacemeowx2/blflash BL602 serial flasher]
 
* [https://github.com/spacemeowx2/blflash BL602 serial flasher]
* [https://github.com/mkroman/awesome-bouffalo#feature-matrix Awesome bouffalo]
+
* [https://github.com/mkroman/awesome-bouffalo#feature-matrix Awesome Bouffalo]
 
 
  
  

Revision as of 21:15, 29 December 2020

Page under construction, information subject to change.
  • PineCone BL-602 EVB (Evaluation Board):

Pine64 BL602 EVB photo-3-small.jpg


BL602 Specifications

  • CPU: 32-bit RV32IMAFC RISC-V “SiFive E24 Core”
  • Memory:
    • 128KB ROM
    • 276KB SRAM
    • 1Kb eFuse
    • 2MB Embedded Flash
  • Security:
    • Secure boot
    • Secure debug
    • AES 128/192/256
    • SHA-1/224/256
    • TRNG (True Random Number Generator)
    • PKA (Public Key Accelerator)
  • Wireless:
    • Wi-Fi 802.11 b/g/n
    • Bluetooth® Low Energy 5.0
    • Wi-Fi Fast connection with BLE assistance
    • Wi-Fi and BLE coexistence
    • Wi-Fi Security WPS/WEP/WPA/WPA2/WPA3
    • STA, SoftAP and sniffer modes
    • Multi-Cloud connectivity
    • 2.4 GHz RF transceiver
    • Integrated RF balun, PA/LNA
  • Package Type:
    • 32 pin QFN 4mm x 4mm
  • JTAG support (See below for BL602 impact)
    • BL602 multiplexes four GPIO pins to provide the familiar JTAG lines
GPIO multiplexing of JTAG pins
GPIO Pin JTAG Pin
GPIO17 TDI
GPIO11 TDO
GPIO12 TMS
GPIO14 TCK

The chip boots with these lines in JTAG mode.

BL602 Block Diagram.jpg


PineCone BL602 EVB information and schematics

  • Approximate dimensions: 26mm x 43mm
  • Board layout:

PADI-II EVB.png

  • PineCone BL602 EVB schematic ver 1.1
    • Note: In PineCone revision 1.1 ("BL62B_EVB V1.1" silkscreened on back of board), CC1 and CC2 share one 5.1KΩ resistor. This means the board will fail to power when you use an e-marked USB-C cable like the one that comes with Apple chargers. See this article for details of why this happens. The next schematic design will give each line its own 5.1KΩ resistor as per the USB-C specification.
  • The board uses a CH340 Serial/USB adapter. This chip is commonly used in Arduino-class development boards. It is a full speed (12Mbps) USB interface and has vendor ID 0x1a86 with product ID 0x7523.
  • The GPIO pins (11, 12, 14, 17) plus the nearby RESET, POWER, and GND pins are all located on one side of the board, on J1 to provide JTAG connection.

Datasheets for components and peripherals


Misc notes

Planned to be available in at least three form factors:

  • NUT-01S -> ESP-01S
  • NUT-12S -> ESP-12S
  • NUT-15 -> RTL8723/AMPAK


Loading code

To load code, you must move the jumper to the edge closest to the board, press reset, load the code, move the jumper back toward the center of the board, and press reset again.

There are currently a number of loaders in progress, each with differing degrees of completeness and success on various operating systems.

  • In the build tree, there is BLFlashCube for Windows and a flash_build for Linux, neither with source.
  • bl60x-flash is in Python and has been reported successful on MacOS catalina (10.15.6) by Punnerud and madushan1000.
  • BLOpenFlasher is a WIP, written in go, by Bouffalo Labs to provide source for a flash utility.
  • bl602tool is a Python utility in development.
  • Bouffalo's Python Flash Loader is a new (Dec 02) flash loader by the makers of the chip.
  • Bouffalo's image build smooshes code and adds headers for downloads.

Development efforts


Articles and Blogs