main (1).JPG
touch (3).JPG
TempLedButton (3).JPG
This is a development board for the PIC24F series of microchip, with:
  • USB ( plug it to any computer)
  • Ethernet ( plug it to the internet)
  • SD card ( save and read all data you will need)
I developed this thing as a learning platform, it worked ( still is). So if you always want to go a step further in microcontrollers as i want, it's a nice way of doing it . The problem i had is that microchip examples are for their development board, which i don't have access. So i developed my one board and examples, and i saved all the steps so it would be easier to someone to get started.Going from a simple ping to a webpage with ajax.

 A video showing the project:

 
 (Obs:the page is no longer available, iT consumes some power and a port on my  router.)
 
Just to give a head start see some of the things i have done so far with this board:
  1. An Touch keyboard, usable as a standard USB keyboard.
  2. A Video Game ( pong and snake games) , with TV output, and connection to a PC Keyboard ( the old PS/2 ) for control.
  3. Picture frame,  reads pictures form the SD card and show them on the TV.
  4. Controling a 5 volt LCD and some leds, with just 3 wires ( the MCU is 3.3V)
  5. Web server, where you can see some status of the board as temperature, the position of a Pot and a Button,  control some leds and the LCD ( all this from the internet)
  And the things i know before i started ( just a checklist): It all started when i saw this project:

web-server-on-a-business-card-part-2 ( thank you HACKADAY)

The idea of controlling something trought the internet was really nice, so i bought the chip. But when i was delivered classes started. One Year later, i started to read a promising book:

Programming 16-Bit PIC Microcontrollers in C: Learning to Fly the PIC 24 

I was the 24F, i started right away. Breadboard, wire-mess, and the first programs were running. But as i advanced in the book i felt the need for a PCB. Hackaday project was my base, but i wanted i little bit more. An USB connector, and some pins fore expansions.The WEBSD board was born.

After I developed some extra boards to plug. If i want to do a new thing with the board, just design a simple expansion board. 

Follow the next pages to see more about the project. Project files are annexed on this page.

Arthur Benemann 2011 Brasil
 
Remove these adsRemove these ads by Signing Up

Step 1: Main Board

main (1).JPG
Jump this if you have no interest on the design part of the project.

The main board was been based on the hackaday project. It's name come from the two main thing on it:
  • WEB - Internet connection
  • SD - The memory card
I was one of my first projects with a PIC24F, and the power of this chips and C combined scared me.

Layout was easy because of the PPS (Peripheral Pin Select) feature of this family. I allows the I/O of the digital peripheral to be assigned to almost any pins. But i was low on the pin count, but squeezed 4  pins out of it for expansions.

Power is done by a small power supply rated for 5v 500mA ( a standart 7805 PS). I do not chose USB power because of the current draw by the Ethernet chip.

To put all the connectors on one side , and to keep a small size, a double layer board was needed. i got addicted by smd parts, they can be faster to solder, and there is no need to drill so many holes in the board. Unfortunately i didn't bought the Smd version of the ENC28j60 so it is a DIP part.

The MCU choice was simple, i wanted to learn to use the 24F family, USB was a nice feature to explore, SOIC package (QFN packages still frightens me). So i just pick the one with the biggest program memory.

The ICSP programming connector is for the pickit2 footprint, i is used also as a rs232 serial port. You can see the communications using the terminal provided with the pickit2 or with a external serial port ( allows for more speed)


Part-list  ( with mouser reference) :
Qty Value Device Parts
3 red LEDCHIPLED_0805 LED1, LED2, LED3
8 0.1uF C-EUC0805 C2, C4, C6, C7, C9, C10, C11, C12
2 1uF C-EUC0805 C5, C8
1 2K32 R-EU_R0805 R12
2 10k R-EU_R0805 R1, R5
1 10uF CPOL-EU153CLV-0405 C3
1 25Mhz CRYSTALHC49UP Q2
2 22pf C-EUC0805 C15, C16
4 49R9 1% R-EU_R0805 R8, R9, R10, R11
1 60ohms I_0805 L1
1 330R R-EU_R0805 R4
2 330R R-EU_R0805 R2, R3
1 AP1117E33 V_REG_LM1117SOT223 IC1
1 ENC28J60-DIL ENC28J60-DIL IC2
1 J1006LONG Ethernet Connector RJ1
1 PIC24FJXXGB002 PIC24FJXXGB002 U$1
1 SD SD U$2
1 USB-MB USB-MB U$4
1 power jack JACK-PLUG1 J2

1-40 of 58Next »
ALVERNEPAIVA says: Mar 11, 2013. 2:19 PM
Puxa se eu tivesse lido esse artigo antes teria poupado um baita tempo no aprendizado incial da TCP Stack da Microchip. Felizmente , após 5 dias martelando , consegui fazer um pequeno protótipo rodar corretamente usando um PIC24HJ256GP210. Obrigado pelo esforço e por espalhar o conhecimento.
mcujun says: Jun 10, 2012. 9:50 AM
I test your firware HTTP But compile error.Why ?
cho2 says: Apr 3, 2012. 2:13 PM
Arthur, seu trabalho é realmente impressionante! Eu também sou aluno de graduação em eng elétrica e estou muito motivado a, pelo menos, reproduzir esse seu trabalho, porém estou encontrando algumas dificuldades quanto à gravação dos códigos... será que eu poderia trocar alguns e-mails com você a fim de saná-las? Desde já obrigado e mais uma vez parabéns!
xPIOLx says: Aug 25, 2011. 7:21 PM
Muito bom trabalho, sem duvida !
Fico feliz que um trabalho tão bom quanto esse tenha sido feito por um brasileiro, isso é muito motivador !
Parabens !
arthurb (author) says: Aug 26, 2011. 7:17 AM
De uma olhada neste outro projeto: http://www.instructables.com/id/picChess/

E um projeto novinho está saindo do forno...
diogenes_viegas says: Oct 30, 2011. 5:58 PM
Arthur, gostaria do seu e-mail ou alguma forma de contato pois estou projetando uma placa de desenvolvimento tambem com o 24f e gostaria de alguma ajuda e se possivel troca de informaçoes... Meu e-mail é diogenes_viegas@hotmail.com
caso queria me mandar uma forma de contato para o meu e-mail serei grato.
Obrigado
pascalbianca says: Aug 6, 2011. 11:18 AM
Very nice project, keep the good work
But i have one question , i made also this project but what is your power supply more or less then 20V? and what is your working voltage on your board? 3.3V or less?

Because i tryed 12V suplly but did not work.

But keep on the good work :)
arthurb (author) says: Aug 6, 2011. 4:09 PM
You made the board? Cool. It's a 5V DC input, The processor runs at 3v3, but some of the other plug-in boards need the 5 volts. I use one of those wall brink power supply with a 7805 to get the 5v.
rcmelick says: Jun 14, 2011. 5:51 AM
Grande projeto!
Muitas possibilidades de uso, como apoio a servidores em caso de estar offline e até automotivo para saber staus do veiculo e localização com autilização de um GPS.
Abraços.
MAJP says: Mar 19, 2011. 8:43 AM
Great Job Arthur! I would love to see the webpage for this, but cannot access it. Is it still up and running?
arthurb (author) says: Mar 20, 2011. 6:27 PM
Thanks, the webpage is offline( as commented under the video). But if you download the projects files in "...\firmware\10 - Ethernet LCD\Webpages" you can open it.
arthurb (author) says: Feb 13, 2011. 6:17 PM
Hi, i started monitoring the WEBSD board with Google Analytics, anyone knows how share the info? The page view counter on the webpage it's lying a bit, it resets every time the board is reseted. ( ex: when i reprogram it)
km777 says: Mar 13, 2011. 7:00 AM
use different concept send IP: over USART to PC there log it
into TXT file - you can log in HTTPd format and use later web/apache tools from sourceforge

or log data to SD keep on mind you have to log with "append"
never do incerement variables becouse HTTP request are paralell and incerementing you can damage accuracy

simply log only IP in binary form for example 4bytes
and number of visitors is filesize (div) 4(sizeof IP)

FATfs statistics.log (IP 20.130.57.103)
020130057103(chr(\r\n)) = 14chars per line ( 14 is better for DIViding)

filesize/14=num_lines = hits later you can use unix/cygwin GNU tools
sort -nr | uniq > visitors -> GeoIP produce country list :)

Nice NIce Project I wish have same with AVR but not Arduino :p
ATmega644P

Dont worry about you english its better then my. but I see problem with lighting in you room video its too Dark. Nextime change the LightBulb ;)

robonerd says: Mar 9, 2011. 12:23 PM
Your project is absolutely AMAZING! Pure genius. Just so you know, your english is better than most native speakers of the language! Again, this is fascinating! Could you do an instructible on how to make and wire the USB connection?
; - )
arthurb (author) says: Mar 10, 2011. 7:06 AM
Thanks, I'm glad you liked. I don't understand what you mean by how to wire the USB connection, there is nothing new there just a standard min-b USB cable.
robonerd says: Mar 10, 2011. 8:28 AM
thanks for your reply. i make my own arduinos, and I cant figure out how to make the usb connection with an ftdi chip. you know how to do this by any chance? is that how you connect your board? with ftdi? right now i use a ft232 to usb to connect to my boards, but its external.... i have to wire it to my board to upload sketches. id love to just have the chip on the boards i make instead. i want to make my own. the ft232 is $15! and i cant pay this for each board.
arthurb (author) says: Mar 10, 2011. 9:25 AM
i have not played with a FTDI chip yet. The board uses the USB peripheral of the PIC24F micro.
taruntanuj007 says: Mar 4, 2011. 7:59 AM
Well Done!!! Dude plz tell me the name of theb ook u read to study about Ethernet and USB protocol in PIC24F series
arthurb (author) says: Mar 4, 2011. 10:52 AM
The book is "learning to fly the pic24f", but it's about the 24F series not USB and Ethernet. USB and Ethernet you can learn with the microchip exemples, help files, and this project .
paulosagatiba says: Feb 12, 2011. 3:13 PM
Parabens muito bom, é bom ver projetos brasileiros aqui no instructables.
Sandman.Gor says: Mar 2, 2011. 4:42 AM
Sem Duvida! Parabens mesmo Arthur muito bom o trabalho. Sempre considerei que nos Brasileiros, somos criativos.

Very nice project, good work.
lark3po says: Feb 28, 2011. 5:51 PM
Great work!
j-pdup says: Feb 25, 2011. 11:37 PM
Wow awesome instructable. I started December with the same idea, I haven’t really made much progress since then, but your instructable will help a lot. I am planning to do the Ethernet and SD card part. If you can please give me some advise, will there be a lot of change in your hardware and software if I use the PIC18f97J60?
arthurb (author) says: Feb 27, 2011. 5:14 PM
Cool.

The hardware will change a lot, as you wan't to use a PIC that has the Ethernet MAC and PHY inside already. The software could be adapted, but microchip has a lot of the ethernet examples using this chip.

It's up to you to go the fast way ( with my project over here), or the fun way ( developing your own board )...

Fell free to ask any question : )
j-pdup says: Feb 28, 2011. 8:45 AM
Hey I am very impressed by your intractable. I started in the beginning of the year with almost the same project. The only thing is I want to use a pic18 and as well RS232. Will there be a lot of change in the code to use the networking and maybe a SD card. I will appreciate the help and any comment you can give me.
ma3d says: Feb 17, 2011. 1:02 PM
I know it's being a little pedantic, and understand using GET in this application for the sake of simplicity, but people doing similar projects should be aware that GET requests are not supposed to change state on an HTTP server, and that any request that will change state on the "server" such as the output of a display, LED, or motor should use a POST request. Browser UIs, web crawling bots, and other http clients are generally built with this assumption in mind so in some cases this can be a safety issue.
arthurb (author) says: Feb 21, 2011. 12:31 PM
Good point,

But that is the way that microchip blinks leds on the examples, but the URL string should no be longer than 100 bytes to prevent overflow.

I know that maybe the LCD should use a post method. But i when i wrote that code i was still learning the GET request.

Another code I'm doing gives you the option of send a bitmap file to the board and make that show up on the TV. This one could only work with POST.
ma3d says: Feb 25, 2011. 12:27 PM
yeah, I agree that in the microcontroller it may make sense to violate this rule of web design. I mostly wanted to make people aware of the tradeoff between simplicity and convention that was being made.

It's good that you'll have an example of a POST.

BTW, this is a very cool project. thanks for sharing it.

-Matt
santiagoscaine says: Feb 20, 2011. 6:29 AM
muy buen proyecto! saludos desde Argentina!
Build_it_Bob says: Feb 19, 2011. 5:57 AM
Arthur ,
I am so impressed with all the effort you put into this project along with the explanations and referances you used. You are very talented ! I am english ( with a small amount of french speaking) and to think I would have missed all the learning if you posted this in your native language ... Thank you for all you have done !
Question , what is your occupation and electronics background , if you don't mind my asking ?
Build_it_Bob
arthurb (author) says: Feb 19, 2011. 11:56 AM
Hi, thanks for reading. About your question,  currently  I'm an electronics engineering student at UFRGS.

I started learning electronics at  2004 I think. So far I learned everything in the internet, blogs ( HACKADAY, HACKEDGADGETS , ...) , some books ( The art of eletronics), and application notes. But mainly from blowing leds on a breadboard.

ironix2 says: Feb 18, 2011. 4:38 PM
Ignora o cara.... Projeto massa!
mooreroy says: Feb 17, 2011. 8:34 AM
(removed by author or community request)
stormende says: Feb 18, 2011. 2:14 PM
Learn Portuguese first and then come back to criticize his spelling and grammar, otherwise s.t.f.u.
pwrage says: Feb 17, 2011. 1:41 PM
@mooreroy, this is an incredibly rude comment and not at all constructive. Perhaps you could have volunteered to help clean up the grammar since @arthurb is obviously not a native English speaker.

I would imagine, @mooreroy, that you would be hard-pressed to construct a useful Instructable in Portuguese. I know I would be!

That said, @arthurb, I am very impressed with your work, and I think you have done a great job with this Instructable. Thanks for sharing!
arthurb (author) says: Feb 17, 2011. 1:33 PM
Bem eu poderia ter escrito todo o projeto em português, porem somente algumas pessoas teriam lido sem usar um tradutor. E outras nem se dariam o trabalho de usar o Google para gerar uma tradução horrível.
franspaco says: Feb 22, 2011. 5:06 PM
its easy to understand portuguese if you speak Spanish (I'm native Spanish speaker) and I also did my instructable (for the contest) in English, believe me, its not as easy as it seems to be
larsenk83 says: Feb 18, 2011. 4:41 PM
This what I have after running goggles translator,

" Well I could have written the entire project in Portuguese, but only some people would read without using a translator. And others would not even work to use Google to generate an awful translation."

I'm with you man, good job on this.

on a second note, would it be possible to play video files on this. I'm amusing off of usb or over Ethernet, maybe put an "O.S." of some kind on the SD card.
arthurb (author) says: Feb 23, 2011. 4:03 AM
I don't think it would have the processing power needed to run videos. But an "O.S" might be possible, as this PIC has more power than the first computers.
hexinverter says: Feb 17, 2011. 1:06 PM
Yup, I am a spelling/grammar Nazi for the most part. Well, okay, I don't carry an English degree, nor do I care about English as an art form...it does drive me nuts when people are too lazy/dumb to spell or use proper grammar and punctuation though.

I understand where you are coming from, but I think you might have missed the fact that the author's native language is probably not English.

For non English speaking folks, I make an exception to my grammar Nazism; and you should too!
1-40 of 58Next »
Pro

Get More Out of Instructables

Already have an Account?

close

PDF Downloads
As a Pro member, you will gain access to download any Instructable in the PDF format. You also have the ability to customize your PDF download.

Upgrade to Pro today!