Presentation is loading. Please wait.

Presentation is loading. Please wait.

Team 8 Milestone 3 Presentation: System Level Design Review Bitcoin Wallet Team: Andre ElliottKishen Patel Mark NixonZach Hoelzle.

Similar presentations


Presentation on theme: "Team 8 Milestone 3 Presentation: System Level Design Review Bitcoin Wallet Team: Andre ElliottKishen Patel Mark NixonZach Hoelzle."— Presentation transcript:

1 Team 8 Milestone 3 Presentation: System Level Design Review Bitcoin Wallet Team: Andre ElliottKishen Patel Mark NixonZach Hoelzle

2 Introduction Problem Statement Bitcoin introduced in 2009 as a digital peer-to-peer payment network No centralized bank or government institution Not widely adopted by non-tech savvy population Mostly due to complications of storing and spending currency Offline Bitcoin wallet aims to remedy this problem Offer its users a simple method of storing and spend Bitcoin Presenter: Kishen Patel

3 Introduction Product designed with commercially available off- the-shelf components Trusted and tested manufactures for safety and reliability No third-party operating system or programming to ensure maximum security Focused on safety, security, and simplicity Presenter: Kishen Patel

4 Operating Environment Device usable anywhere the user desires Portable due to being battery powered and offline Not restricted by network or external components such as a PC No larger than a smartphone or PDA Made for on-the-go usage Computation on microprocessor and RAM components Memory stored on SD card Presenter: Kishen Patel

5 Operating Environment User interface and input done on 4.3” resistive touchscreen Graphical User Interface Easy to read text No input necessary outside of device Onboard software written in C Presenter: Kishen Patel

6 Operating Environment PC side software Used for synchronizing accounts with transactions made offline to Bitcoin network Written in C++ environment Presenter: Kishen Patel

7 Intended Users/Uses Device marketed to anyone who uses Bitcoin Novice and advanced users alike Offers unparalleled simplicity compared to other similar devices Used to store and spend Bitcoin offline Gives versatility between displaying QR codes or exchanging account addresses Currently not offered with other Bitcoin wallet products For users who value safety and security Offers peace of mind from hacking and malicious intrusion Presenter: Kishen Patel

8 SYSTEM OVERVIEW USB Connection USB OTG 25-30 MB/s 5 volts @.5 amps (2.5 watts max) Presenter: Mark Nixon

9 Hardware Components: – Main Logic Board – Expansion Board – Display Module – Battery Bitcoin Wallet Hardware Overview Presenter: Mark Nixon

10 Main Logic Board Microcontroller AT91SAM3X8E Clock 84 MHz RAM 96KB of SRAM Flash 512KB ADC 16 ADC Resolution 12 bits USB USB2.0 OTG UART 4 TWI (I2C) 2 SPI 6 Digital I/O Pins 54 Power 100mA@5V Arduino Due Features Presenter: Mark Nixon

11 LCD Module LCD Module Features Module Size133mmx85mmx23mm LCD PanelHannStar HSD050IDW1 LCD Size4.3” LCD Resolution800x480 LCD I/O8/16 bit parallel I/O LCD ControllerSSD1963 TouchscreenResistive Touchscreen Controller XPT2048 SD CardSPI bus Power175mA @ 5V Presenter: Mark Nixon

12 Expansion Board  MCP73871 Lithium Battery Charge Controller  ADC Line to Monitor Battery Voltage  Random Number Generator Presenter: Mark Nixon

13 Rechargeable Lithium Battery Lithium Battery  Capacity: 1000mAH  Nominal Voltage: 3.7 volts  Max Voltage: 4.1 volts  C Rating: 1 Presenter: Mark Nixon

14 Hardware Connections Presenter: Mark Nixon

15 Device Enclosure Device Port Side with Screen Top View with Screen Presenter: Kishen Patel

16 Device Enclosure Device Port Side without Screen and Cover Device Top View without Screen and Cover Presenter: Kishen Patel

17 Device Enclosure Device without Screen and Button Device without Cover Presenter: Kishen Patel

18 Bitcoin Wallet Software Overview Software Components: – LCD Display – Bitcoin Accounts – Bitcoin Transaction – Cryptography – Battery Monitor Presenter: Mark Nixon

19 Touchscreen The LCD module uses the XPT2048 4-wire resistive touchscreen controller. Steps to Reading a Touchscreen XY Coordinate : 1.Pressure is applied to a point on the touchscreen by a user. 2.A positive voltage is driven between XP and XN. The X coordinate is read in through the YP line and is feed into an analog-to-digital converter. The digital representation of the X coordinate is then stored in a register for later usage. 3.A positive voltage is driven between YP and YN. The Y coordinate is read in through the XP line and is feed into an analog-to-digital converter. The digital representation of the Y coordinate is then stored in a register for later usage. 4.PENIRQ is driven low signaling that the touchscreen has been touched. 5.The MCU responds to the interrupt by reading the X and Y coordinates from the XPT2028 registers. Presenter: Mark Nixon

20 LCD Panel The LCD module uses the SSD1963 LCD panel controller. The software to control the LCD panel is an open source library (UTFT library). Sample of UTFT Library Functions FunctionDescription drawRect(int x1, int y1, int x2, int y2)Draws a rectangle at given coordinates drawRect(int x1, int y1, int x2, int y2)Draws circle at given coordinates clrScr()Clears LCD screen fillScr(byte r, byte g, byte b)Fills screen with specified RGB color drawLine(int x1, int y1, int x2, int y2)Draw line between specified points printChar(byte c, int x, int y)Prints ASCII character at specified position drawBitmap(int x, int y, int sx, int sy, bitmapdatatype data, int scale)Draws bitmap image at specified position lcdOn()Turns LCD on setBrightness(byte br)Sets display brightness Presenter: Mark Nixon

21 Bitcoin Wallet GUI Presenter: Zach Hoelzle

22 Enter your private key Cold Coin Wallet Private Key Entry Page Full Querty Keyboard Next Cold Coin Wallet Presenter: Zach Hoelzle

23 Please enter your password : ******************* Password Entry Page Cold Coin Wallet Full Querty Keyboard Verify Re-enter Private Key Presenter: Zach Hoelzle

24 The 5 passwords you have entered are incorrect! Your account will be inaccessible for the next hour. Lock Mode Page Cold Coin Wallet Presenter: Zach Hoelzle

25 Main Menu Page View Transaction History Account Balance Deposit/Withdraw Funds Make Transaction Change Password Cold Coin Wallet Logout Presenter: Zach Hoelzle

26

27

28 Transaction amount:.001 BTC Presenter: Zach Hoelzle

29 Cold Coin Wallet Change Password Page Please enter your password: ******************* New password: ******************* Confirm New password: ******************* Verify Cancel Full Querty Keyboard Presenter: Zach Hoelzle

30 Log OutPower Off Return to Main Menu Cold Coin Wallet Presenter: Zach Hoelzle

31 SD Card and Account Management User account information such as private and public keys will be stored on the SD card located on the LCD Module. A SPI bus from the microcontroller will be used to communicate with the SD card. CommandMnemonicCommand Description CMD0GO_IDLE_STATEResets the SD Memory Card CMD9SEND_CSDAsks the selected card to send its card-specific data (CSD) CMD10SEND_CIDAsks the selected card to send its card identification (CID) CMD12STOP_TRANSMISSION Forces the card to stop transmission in Multiple Block Read Operation CMD13SEND_STATUSAsks the selected card to send its status register. CMD17READ_SINGLE_BLOCK Reads a block of the size selected by SET_BLOCKLEN command CMD24WRITE_BLOCK Writes a block of the size selected by the SET_BLOCKLEN command. CMD32 ERASE_WR_BLK_STAR T_ADDR Sets the address of the first write block to be erased. CMD33 ERASE_WR_BLK_END_ ADDR Sets the address of the last write block of the continuous range to be erased.` CMD38ERASEErases all previously selected write blocks Account Structure:  Number of Accounts  Account #1 Number of keys List of Keys  Account #2 Number of keys List of Keys  Account #3 Number of keys List of Keys  …… Sample of SD Card Functions Presenter: Mark Nixon

32 Microcontroller Memory Map Memory LocationSizeUse 0x20000000 to 0x20000FFF 4096 BytesUSB Data Buffer 0x20001000 to 0x20001FFF 4096 Bytes Transaction Buffer for Processing Transactions 0x20002000 to 0x20003FFF 8192 BytesTransaction Queue 0x20004000 to 0x20005FFF 8192 BytesSD Card Buffer 0x20006000 to 0x200067FF 2048 BytesGlobal Variables 0x20006800 to 0x20008FFF 10240 BytesStack RAM Memory Allocation Presenter: Mark Nixon

33 USB Interface CommandModeDescription Help Unlock and Locked This command can be used in conjunction with another command to get the proper command syntax and a brief description of what the command does. Status Unlock and Locked This command is used to get the current status of the offline bitcoin wallet. After entering this command is entered the offline bitcoin wallet will respond with the following: Device Name, Software Version, System Time, Mode and Battery Voltage. ProcTx Unlocked Mode Only This command is used to send a bitcoin transaction to be signed to the offline bitcoin wallet. After entering this command the offline bitcoin wallet will prompt the user for the following: Account name, receiving public key and bitcoin amount. Once a transaction has been processed by the offline bitcoin wallet it will be sent to the transaction queue. GetTxQueue Unlocked Mode Only This command will list the number of transactions waiting in the queue to be sent out on the bitcoin network by the PC. TxDequeue Unlocked Mode Only This command will dequeue a signed bitcoin transaction and output the transaction data through the USB connection. CreateAccount Unlocked Mode Only This command will be used to create a new account name through which private keys can be linked too. GetAccountList Unlocked Mode Only This command will list all of the available bitcoin accounts on the offline bitcoin wallet and their respective number of bitcoins available to be spent. AddAccountTX Unlocked Mode Only This command will add a relevant previous bitcoin transaction to a specified account. These previous transactions are used to sum up the total number of bitcoins available to a user as well as to send bitcoins to other people. The USB port on the PC will be configured as a standard COM port. The PC can issue commands to the bitcoin wallet using a terminal application. List of Bitcoin Wallet Commands Presenter: Mark Nixon

34 Bitcoin Transaction Format Bitcoin Transaction Data Structure: 1.Transaction ID – Hash of entire transaction used as an identifier. 2.Version Number – Bitcoin version number (currently 1). 3.In Counter – Number of input transactions we are referencing. 4.Out Counter – Number of output transactions 5.Lock Time – Record of time of transaction. 6.Size – Byte size of transaction. 7.List of Inputs – For each input we list a signature of the transaction proving we are the owner as well the public key. 8.List of Outputs – For each output transaction we list the bitcoin value to be sent out as well as a hash of the private key. After processing a bitcoin transaction the bitcoin wallet needs to format the transaction structure in so that it will be accepted on the bitcoin network. Presenter: Mark Nixon

35 Example Bitcoin Transaction Presenter: Mark Nixon

36 Constructing a Bitcoin Transaction Presenter: Mark Nixon

37 Battery Status Monitor  The software code for the battery monitor is in charge of reading the battery voltage through an analog-to-digital line.  The software code will be linked to a timer interrupt which will have a timeout every 500mS. When the timer times out the interrupt routine will be called. Interrupt Routine for Battery Monitor: 1.Read ADC line of battery. 2.Convert to proper voltage. 3.Store the battery voltage value in global variable “batteryVoltage”. 4.Clear interrupt flag. 5.Return from routine Presenter: Mark Nixon

38 Desktop Software Overview Process Bitcoin Transaction: – USB – Bitcoin Network Graphical User Interface – Create Transaction – View Accounts Presenter: Mark Nixon

39 Bitcoin Network Interface  To interface with the bitcoin network the desktop software will utilize a publicly available API from Blockchain.info.  The Blockchain.info API will be used to send out new bitcoin transactions using the “PushTx” class and will also be used to retrieve old transactions that have already been processed using the “BlockExplorer” class. FunctionDescription GetTransaction(char txNum[]) Returns the transaction data of a particular hashed transaction. GetUnconfirmedTransactions (char addr[]) Returns a list of unconfirmed transactions for a particular address. GetUnspentOutputs(char addr[]) Returns list of unspent transactions for a particular address. BlockExplorer Class Functions FunctionDescription PushTrasaction(char txData[]) Used to send out a transaction onto the bitcoin network for processing. PushTx Class Functions Presenter: Mark Nixon

40 Desktop GUI Presenter: Andre Elliott

41 Cold Coin Wallet User Login Page Forgot username or password? Wallet Help Password Login: Presenter: Andre Elliott

42 Cold Coin Wallet Input Forgot UN/PW Page Forgot username or password? Wallet Help Email: Confirm Send Presenter: Andre Elliott

43 Cold Coin Wallet Accounts 1.Business (Active) 2.Personal 3.Family 4.Etc. 5.… 200. Maximum +New Account Home Page Transaction Menu Send Receive History Address: xxxx-xxxx-xxxx-xxxx Wallet Help QR Code Logout Presenter: Andre Elliott

44 Cold Coin Wallet Accounts 1.Business (Active) 2.Personal 3.Family 4.Etc. 5.… 200. Maximum +New Account Send Transaction Page Transaction Menu Send Receive History Address: xxxx-xxxx-xxxx-xxxx Wallet Help QR Code Logout Amount To Public key Confirm Presenter: Andre Elliott

45 Cold Coin Wallet Accounts 1.Business (Active) 2.Personal 3.Family 4.Etc. 5.… 200. Maximum +New Account Receive Transaction Page Transaction Menu Send Receive History Address: xxxx-xxxx-xxxx-xxxx Wallet Help QR Code Logout Amount From Public key Confirm From Private key Presenter: Andre Elliott

46 Cold Coin Wallet Accounts 1.Business (Active) 2.Personal 3.Family 4.Etc. 5.… 200. Maximum +New Account Transaction History Page Transaction Menu Send Receive History Address: xxxx-xxxx-xxxx-xxxx Wallet Help QR Code Logout Transaction Ledger For Current Account Presenter: Andre Elliott

47 Cold Coin Wallet Accounts 1.Business (Active) 2.Personal 3.Family 4.Etc. 5.… 200. Maximum +New Account Add Account Page Transaction Menu Send Receive History Address: xxxx-xxxx-xxxx-xxxx Wallet Help QR Code Logout New Account: Public Key Private Key Password Accept Account Name Presenter: Andre Elliott

48 Cold Coin Wallet FAQs Support User Manual Account Settings Help PageWallet Help Logout Presenter: Andre Elliott

49 Cold Coin Wallet FAQs Support User Manual Account Settings FAQs Help PageWallet Help Logout List of FAQs Presenter: Andre Elliott

50 Cold Coin Wallet FAQs Support User Manual Account Settings Support Help PageWallet Help Logout Support Contact Info: Tel: xxx-xxx-xxxx Email: CCWsupport@help.ext Presenter: Andre Elliott

51 Cold Coin Wallet FAQs Support User Manual Account Settings User Manual Help PageWallet Help Logout User Manual Quick Links (Table of Contents) Scrollable PDF of User Manual Presenter: Andre Elliott

52 Cold Coin Wallet FAQs Support User Manual Account Settings Account Settings Help PageWallet Help Logout Change Username Change Password Print Paper Backup View Devices Disconnect Devices Presenter: Andre Elliott

53

54 Tasks/SubtasksTeam Member(s) Assigned Task 1: Project Management 1 Task 2: Components 1,2,3,4 Subtask 2.1: Project Board 1,2,3,4 Subtask 2.2: LCD 1 Subtask 2.3: Casing 3 Subtask 2.4: Battery 2 Subtask 2.5: SD 4 Subtask 2.6: Misc. Parts 1,2,3,4 Task 3: Integration 1,2,3,4 Subtask 3.1: Battery 2 Subtask 3.2: LCD 1 Subtask 3.3: SD 4 Subtask 3.4: Misc. Parts 1,2,3,4 Subtask 3.5 Enclosure 3 Task 4: System Analysis 1,2,3,4 Subtask 4.1: Power 1,2 Subtask 4.2: Memory 3,4 Task 5: Programming 1,2,3,4 Subtask 5.1: Hardware 2,3 Subtask 5.2: Software 1,4 Task 6: Testing 1,2,3,4 Testing Task: 6.1 1,2 Testing Task: 6.2 3,4 Testing Task: 6.3 3,4 Testing Task: 6.4 1,2 Testing Task: 6.5 1,2 Testing Task: 6.6 3,4 Testing Task: 6.7 1,2,3,4 Testing Task: 6.8 1,2,3 Testing Task: 6.9 2,3,4 Testing Task: 6.10 1,3,4 Testing Task: 6.11 1,2,4 Testing Task: 6.12 1,2,3,4 Testing Task: 6.13 1,2,3,4 Task 7: Documentation 1,2,3,4 Subtask 7.1: Meeting Notes 1 Subtask 7.2: Milestones 1,2,3,4 Subtask 7.3: System Design 1,2,3,4 Subtask 7.4: Programming Reports 2,3 Subtask 7.5: Manual 1,4 Team Responsibilities Key: Andre Elliott – 1 Mark Nixon – 2 Kishen Patel – 3 Zach Hoelzle – 4 Presenter: Andre Elliott

55 Budget Personal Expenses EngineersBillable HoursBase PayTotal Cost Andre Elliot288$30.00$8,640.00 Mark Nixon288$30.00$8,640.00 Zach Hoelzle288$30.00$8,640.00 Kishen Patel288$30.00$8,640.00 Personnel Subtotal$34,560.00 Fringe BenefitsRate of 29%$10,022.40 Total Personnel Cost$44,582.40 Presenter: Kishen Patel

56 Budget Expenses ItemPartCost ($)Quantit y Total ($) Arduino Due BoardAT91SAM3X8E51.912103.82 SainSmart 4.3 Inch Touch PadTFT LCD Screen 32.99265.98 SHA-256 Cryptography ModuleATSHA2041.1822.36 Battery15.00230.00 Battery Fuel GaugeLTC29423.7127.42 Battery ChargerMCP738712.1524.30 Memory CardSD Card + Cage20.00240.00 Device Enclosure*3-D Printed Box50.002100.00 USB CablesMicro USB1.3822.76 AC-to-DC Adaptor5.95111.90 Total368.54 Presenter: Kishen Patel

57 Budget Budget does not include shipping and taxes Shipping from certain vendors cost more than the product itself Order multiple components from same vendor in higher quantities for cost efficiency Device enclosure manufacturing cost represents an estimate and not an actual cost of production Presenter: Kishen Patel

58 Risk Assessment Technical Risks – Hardware Battery Life Decreased by Excessive Discharge Physical Damage Faulty Components Hardware Overheating Presenter: Zach Hoelzle

59 Risk Assessment Technical Risks – Software Key Components Not Accepting Commands Faulty Software Libraries Software Learning Curve Presenter: Zach Hoelzle

60 Risk Assessment Schedule Risks Work Load Difficulties Understanding Requirements Schedule Adjustments Individual Productivity Presenter: Zach Hoelzle

61 Risk Assessment Budget Risks Unaccounted for Prices Operational risks Cold Coin Wallet Assembly Presenter: Zach Hoelzle


Download ppt "Team 8 Milestone 3 Presentation: System Level Design Review Bitcoin Wallet Team: Andre ElliottKishen Patel Mark NixonZach Hoelzle."

Similar presentations


Ads by Google