SPI ADC with PIC32 Harmony

This week I continue doing emulating ADC based on the proper protocol of SPI ADC from Microchip – MCP3204/3208 From the document table 5-1: state that to initiate a ADC read for specific channel, Master SPI will first send 4bit of ‘Control Bit Selection’ to read the data of the particular ADC channel (Slave SPI). For my application I would need to read from 16 Analog pin, therefore my control bit need to be 8bit to hold an address of ‘0x10’ Read more

Discover More Bugs

This week  the task is very time consuming, because I spent most of the time debugging and reading the logs in the terminal. As I got to know from my colleague Jeunn Hao, that the simulation still does not work 100% of the time. I decided to read the code and logs all over again, to determine where is the main problem that causes it to be inconsistent. The Inconsistent Emission As I trace the bug, reading the logs again and Read more

Code Completion Feature

So… I had a stressful time finding a serious bug in my Wt application.  Luckily, I was able to narrow the cause down. The crash happened whenever a new user approved the storage service for the first time. And damn it, it was caused by not deferRendering the WApplication after sending a request to Google Drive. At least, the dummy accounts I created to track down this bug didn’t go to waste. Code Completion feature I am slowly inching my Read more

Fixing Simulator Bug

This week, I have been working mainly on the simulator. Things just don’t work when they are combined 😂 😂 , especially when it is a combination of 3 persons code. It is a critical issue that the simulator is not working. Mainly because I did not understand what had been done by them previously. I was struggling with the simulation bug, because I just can’t simply change the code because there are parts which is not my work. It was a great Read more

Emulating ADC

This week I did some programming on PIC32 ADC and SPI functions. The goal is to transfer ADC value from PIC through SPI to a FPGA chip. FPGA chip will act as a ‘Master’ while PIC32 will be the ‘Slave’. I will be coding for PIC32 only therefore the following will only be applicable to PIC32 with MPLABX IDE and Harmony Library. Examples for PIC32 ADC and SPI Microchip Harmony provide several examples on initialization of ADC and SPI, follow the Read more

CodeMirror and Me

Work progress has been slow this week as I spent my time learning about the code completion feature in the code editor. The previous intern has done some work on it with basic functions.  However, there is much to be done until it becomes fully operable and up to my boss’ expectation. Starting with Clang I started with examining the clang code-completion which was implemented. It’s amazing to see how it works by returning related keywords from the C++ library. Read more

Kill the Zombie

This week, my task is to create a cache system for the FPGA synthesis and implementation process, and to kill the previous synthesis process. The cache system would be useful if someone replicates or reuse their design. This saves the processing power and time, where the synthesized file would be ready immediately. Caching the file by using cryptographic hash function, is pretty interesting. I get to see the power of these functions and why they are so popular to be Read more

PHP Server

This week I do some final touch to the PCB board design. (Spartan6 TQFP, PIC32, HC-05). And then I get my hands on to some programming. My goal is to make a Php server that is able to be ping from my Wt::Client(Ajax) that I previously done. The idea is the same with using a PIC32 MCU to act as a ‘Server’ but now is to use PHP on Linux. Surprisingly the C network programming knowledge that I learn/implemented on microcontroller Read more

Bug Hunting in Wt

This has been a cool week, not the weather though, because I managed to solve problems instead of creating more. Thanks to Dr. Shawn’s suggestion, I’ve started using valgrind to test my code. It turns out to be such a gem. Not having the proper fundamentals, I didn’t know such a thing actually existed. Testing out Valgrind There were so many instances where I spent hours trying to discover segmentation fault in my application. Seg fault is even harder to Read more

Designing a new PCB Board

This week I finish drawing my PCB design for a new board using Spartan 6 TQFP packaging and PIC32MZ. Also added a bluetooth module (HC-05) onto the new board. In comparison most of the component’s footprint for this new board is exactly the same with the previous board, only this time I decided to make some changes on the capacitors’ footprint.  For Spartan 6 – 144pin only requires 4.7μF and 0.47μF capacitor value. And from ‘table 2-2 of ug393‘ stated that these Read more